In a large pot, boil the potatoes in salted water until tender (about 20 minutes). Drain and mash together with the milk and butter until smooth—season with salt and pepper to taste.
In a large skillet, add the oil over medium-high heat. Add the diced onions and cook until tender (about 3 minutes). Add the minced garlic and ginger and cook for few seconds or until fragrant.
Add the ground beef (lamb), thyme, rosemary, bouillon powder, salt, and pepper to taste and brown over medium-high heat until no longer pink.
Stir in the tomato paste and cook for another 2 minutes.
Pour in the broth, Worcestershire sauce, flour, celery, frozen peas, and carrots. Bring to a simmer and cook for 5-10 minutes, until the vegetables are tender and the sauce has thickened slightly stirring occassionally—season with salt and pepper to taste if needed.
Transfer the meat mixture to a 9x13-inch baking dish and spread the mashed potatoes over the top.
You can create some texture or pattern on the surface of the mashed potatoes if desired.
Place the shepherd's pie in a 400°F preheated oven and bake for 30-35 minutes or until the potatoes are golden brown and the filling is bubbling.
Allow the shepherd's pie to cool for a few minutes before serving.