Place the potatoes and cauliflower in a large saucepan and cover with several inches of water. Bring the pot to a boil, then reduce the heat to a steady simmer. Cook until the potatoes are fork tender, about 15 minutes.
Meanwhile, melt 2 tablespoons of butter in a large skillet over medium-high heat. Add the leeks and garlic and sauté until the leeks are tender, about 2-3 minutes. Add the kale and cook until it is wilted and tender, about 5 minutes. Stir in the green onions, then remove the skillet from the heat.
Drain the potatoes and cauliflower and return them to the pot. Add the remaining butter and use a hand masher or stick blender to mash until smooth. Fold in the leek and kale mixture and mix well. Season with salt and pepper, to taste.