Make the onions: Add onions and butter into a large skillet. Sauté on low-medium heat for 20-25 minutes, until onions are caramelized. Stir occasionally with a wooden spoon.
Cook the potatoes: To a large stockpot, add cubed potatoes and chicken broth. Bring to a boil. Then, reduce heat to low, and cover. Allow to cook for 15-20 minutes, or until you can pierce through the potatoes easily with a fork.
Drain potatoes, then add cooked potatoes to a large mixing bowl. Add butter and milk. Mash gently until there are no lumps. You can also use a stand mixer to mash the potatoes.
To the mashed potatoes, add cooked bacon, caramelized onions, Parmesan cheese, salt and pepper. Fold gently to combine.
Serve warm.
Notes
I personally think that the bacon adds enough salt for this dish, so I went easy on the salt. Feel free to add more!
To speed the process, buy Ore Ida Steam and Mash Potatoes. They cook in the microwave in about 10 minutes and mash easily without lumps.
If you'd like to use heavy cream, I'd recommend substituting the 2/3rd's cup of milk with equal parts cream and chicken broth.
You will need 2-3 pounds of potatoes for this recipe.