Prepare potato topping:
In a saucepan add the potatoes and garlic and cover with cold water.
Bring to a boil over medium heat and cook, uncovered, until the potatoes are fork-tender.
Drain and transfer the potatoes and garlic to a large bowl.
Add the sour cream, 1/4 cup of the broth, butter, salt and pepper, and beat on low speed with a mixer until the potatoes are light and fluffy. Cover and set aside.
Prepare the filling:
Preheat the oven to 350 degrees. Spray a casserole dish with non-stick spray, preferably something all natural. I use a square dish, a pie plate could be used as well, it just needs to be really deep.
Heat a skillet over medium heat. Add the bacon and cook, stirring occasionally until browned and almost crisp.
Transfer the bacon to a plate, set aside.
Add the oil to the bacon drippings in the skillet.
Over medium heat, add the onions and 1/2 teaspoon of salt, and cook, stirring occasionally, until the onions soften and start to brown.
Add the sugar, and continue cooking, stirring occasionally, until the onions begin to caramelize,
Add the beef and cook it until browned, breaking it up as you go.
Add the carrots, peas, and garlic.
Stir in the tomato paste and flour and cook, stirring until well blended.
Add the beer (or 12 oz of broth) and bring to a boil for a few minutes.
Continue cooking and scraping up the browned bits from the bottom of the pan.
Add the bacon, broth, rosemary, 1/2 teaspoon of salt, and pepper, and bring to a boil. Reduce the heat and simmer, uncovered, until the sauce thickens, about 15 minutes.
Pour the meat mixture into the prepared baking dish. Spread the potato topping evenly over the beef mixture.
Bake for 35 minutes, or until center is hot and the potato is starting to brown.
Remove from the oven and sprinkle with the cheese.
Return to the oven and bake for a few more minutes until the cheese is melted.
Remove from the oven and let it stand for about 10 minutes before serving.
Sprinkle with parsley and serve.