In a large pot, place the potatoes and cauliflower florets. Cover them with water, bring to a boil on high heat. Reduce heat to a simmer and cook until potatoes and cauliflower are tender, about 12-15 minutes.
Preheat the oven to 375ºF.
In a large cast iron pan or ovenproof skillet, heat 2 tablespoons of oil over medium-high heat. Add the chopped onions and garlic. Cook, stirring frequently until the onions are lightly golden, about 3-4 minutes.
Add the ground beef and cook and stir, breaking up the larger pieces, until browned. Season with herbs, salt, and pepper.
Add the mixed vegetables, diced tomatoes, and beef broth. Simmer, stirring occasionally for 5-8 minutes.
To finish the topping, drain the cooked potatoes with cauliflower. Add 2 tablespoons of butter and Greek yogurt. Mash with a potato masher until smooth and creamy. Season to taste with salt.
Spoon the mashed potatoes with cauliflower over the meat filling in the cast iron pan (or skillet), spreading it into an even layer.
Bake uncovered until the top is golden, about 25-30 minutes.
Let it cool for 5 minutes before serving. Enjoy!