In a large pot, add the potato chunks and cover them with cold water. Add 1/2 teaspoon of salt and bring to a boil over medium-high heat. Cook until the potatoes are tender, about 15-20 minutes. Drain and return to the pot.
While the potatoes are cooking, heat 2 tablespoons of butter in a large skillet over medium heat. Add the sliced onions and 1/2 teaspoon of salt. Cook, stirring occasionally, until the onions are caramelized and golden brown, about 20-25 minutes.
Once the potatoes are drained, mash them using a potato masher or a ricer until smooth.
Stir in the remaining 2 tablespoons of butter, whole milk, sour cream, black pepper, and the caramelized onions. Mix until well combined and creamy.
If desired, fold in the grated Parmesan cheese for added flavor. Adjust seasoning with additional salt and pepper to taste.
Serve warm, garnished with extra caramelized onions if desired.