Place peeled, cubed potatoes in a large pot, cover with cold salted water, and bring to a boil. Cook over medium-high heat for 15–20 minutes until fork-tender, then drain thoroughly in a colander.
Return drained potatoes to the pot and mash with butter, warm milk, and sour cream until smooth and creamy. Stir in ½ cup cheddar cheese, season generously with salt and pepper, and set aside.
Heat olive oil in a large skillet over medium-high heat, add ground beef or lamb, and cook for 6–8 minutes, breaking it up, until no longer pink. Transfer meat to a plate, leaving about 2 tablespoons of fat in the pan.
Add diced onion and carrots to the skillet and sauté over medium heat for 5–6 minutes until softened. Stir in the minced garlic and cook for 1 more minute until fragrant.
Sprinkle flour over the vegetables, stir well, and cook for 1–2 minutes, then add tomato paste, beef broth, Worcestershire sauce, thyme, rosemary, and bay leaf. Return the browned meat to the skillet, add frozen peas and corn, and simmer for 8–10 minutes until the sauce thickens; remove bay leaf and season to taste.
Preheat oven to 400°F (200°C) and lightly grease a 9x13-inch baking dish. Spread the meat filling evenly in the dish, then spoon the mashed potatoes over the top, sealing the edges; use a fork to create ridges and sprinkle the remaining ½ cup cheddar over the surface.
Bake on the middle rack for 25–30 minutes until the top is golden and the filling is bubbling around the edges; broil for 2–3 minutes at the end for extra browning if desired. Let rest for 10 minutes before serving, then garnish with fresh parsley.