Boil the potatoes: Add potatoes to a pot, cover with cold water, and salt generously. Bring to a boil and cook until very tender, about 15–18 minutes. Drain well.
Mash the potatoes: Return potatoes to the hot pot to steam off extra moisture. Add butter, warm milk, and sour cream. Mash until smooth. Season with salt and pepper. Set aside.
Sauté the veg: Heat olive oil in a large skillet over medium heat. Add onion and carrots. Cook until softened, 6–8 minutes. Stir in garlic for 30 seconds.
Brown the meat: Add ground beef or lamb, salt, and pepper. Break it up and cook until browned, 6–8 minutes. Spoon off excess fat if needed.
Build the flavor: Stir in tomato paste, Worcestershire or tamari, thyme, and rosemary. Cook 1–2 minutes until the tomato paste darkens slightly.
Make the gluten-free gravy: Pour in broth. Bring to a simmer. Stir in the cornstarch slurry and cook until thick and glossy, 2–3 minutes. Fold in peas. Taste and adjust seasoning.
Assemble: Transfer the filling to a 2–2.5 quart baking dish. Dollop mashed potatoes over top and spread to the edges to seal. Use a fork to create ridges.
Bake: Bake at 400°F (200°C) for 20–25 minutes until the top turns lightly golden and the filling bubbles at the edges. For extra color, brush with melted butter and broil 1–2 minutes.
Rest and serve: Let it rest 10 minutes. Sprinkle with parsley and serve.