Place the potato chunks in a large pot and cover with cold water by about an inch. Add a pinch of salt.
Bring to a boil over high heat, then reduce the heat to a simmer. Cook until the potatoes are very tender when pierced with a fork, about 12–15 minutes depending on chunk size.
Meanwhile, warm the milk (or cream) and butter together in a small saucepan over low heat until the butter melts. Keep warm — you don’t want to add cold liquid to the potatoes.
Drain the potatoes very well in a colander and return them to the hot pot. Let them steam for a minute to dry out slightly; this helps a fluffier mash.
Mash the potatoes using a potato masher or ricer to your desired texture. For very smooth potatoes, a ricer works best; for a bit of rustic charm, stick with a masher.
Stir in the warm milk and butter mixture a little at a time until you reach the creaminess you like.
Fold in the sour cream if using, then add the cheddar, Gruyère, and most of the Parmesan (reserve a tablespoon for topping if you like a golden finish). Stir gently until the cheeses melt and distribute evenly.
Season with salt and pepper, taste, and adjust. If the potatoes are too thick, add a splash more warm milk.
Spoon into a serving bowl, sprinkle with the reserved Parmesan and chopped chives or parsley. Serve hot.