Step 1: Make the Mashed Potatoes : Place diced potatoes in a pot of salted water. Bring to a boil and cook until tender, about 10–12 minutes. Drain and mash with butter, milk, sour cream, salt, and pepper. Set aside and keep warm.
Step 2: Cook the Beef Filling : In a large oven-safe skillet (like a cast iron pan), heat olive oil over medium heat. Add onion and cook for 2–3 minutes until translucent. Stir in garlic and cook for 30 seconds until fragrant. Add the ground beef and cook until browned, breaking it apart as it cooks (about 6–7 minutes). Drain excess fat if needed.
Step 3: Build the Gravy : Stir in tomato paste, Worcestershire sauce, thyme, rosemary, salt, and pepper. Add the flour and cook for 1 minute, stirring well to coat the meat. Gradually pour in beef broth and milk, stirring until the mixture thickens into a rich gravy (about 3–5 minutes). Add mixed vegetables and stir to combine.
Step 4: Assemble the Skillet Pie : Spread the mashed potatoes evenly over the beef filling in the skillet. (Optional) Sprinkle cheddar cheese on top for a golden, melty crust. Cover the skillet with a lid and reduce heat to low. Let it cook for 5–8 minutes, until everything is heated through and cheese is melted. If you prefer a golden top, place the skillet under the oven broiler for 2–3 minutes, watching closely until lightly browned.
Step 5: Serve : Let the skillet cool slightly before serving. Scoop generous portions directly from the skillet and serve warm.