Preheat the oven to 400 degrees Fahrenheit.
Peel and chop the potatoes into 1-inch pieces and place them in a large saucepan filled with cold salted water. Bring the potatoes to a boil over medium heat and simmer for 13 to 16 minutes or until fork-tender.
While the potatoes are simmering, brown the ground meat and onion in a large pan over medium heat until no longer pink. Drain any excess grease if necessary.
Add the carrots, celery, and garlic to the pan. Cook for another 5 minutes or until the carrots and celery are beginning to soften.
Sprinkle in the flour and cook for 1 minute. Stir in the beef broth, Worcestershire sauce, tomato paste, parsley, thyme, and bay leaf. Cook over medium heat for 20 minutes, or until the gravy thickens. During the last 5 minutes of cooking, stir in the peas to warm through. Remove the bay leaf and season with salt and pepper to taste. Transfer the meat mixture to an 8×8-inch or similarly-sized baking dish.
Drain the potatoes thoroughly and mash them until smooth. Add the butter, followed by the hot milk a little at a time, stirring constantly, until the potatoes are smooth and fluffy. The mixture should be creamy but firm enough to hold its shape. If using cheese, stir it into the mashed potatoes or sprinkle it on top later. Season with salt and pepper to taste.
Spread the mashed potatoes evenly over the meat mixture. Bake for 20 to 25 minutes, or until the potatoes are lightly browned. For a crispier top, broil for 2–3 minutes, watching closely to prevent burning.
Allow the Cottage Pie to rest for 5–10 minutes before serving.