Preheat oven to 400°F (200°C). Lightly grease a 9x9-inch baking dish or similar sized casserole.
Place 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 to a simmer. Cook until potatoes are tender when pierced with a fork, about 12 to 15 minutes.
Drain the potatoes thoroughly and return them to the warm pot. Let them steam for a minute to remove excess moisture.
Mash the potatoes with a potato masher or ricer until mostly smooth. Add butter, cream cheese, and half of the milk. Stir to combine, then add the remaining milk a little at a time until you reach a creamy, spreadable consistency.
Fold in 3/4 cup of the shredded cheddar, salt, and pepper. Taste and adjust seasoning. The mixture should be rich and cheesy but not overly wet.
Spoon the mashed potatoes into the prepared baking dish, smoothing the top with a spatula. Sprinkle the remaining cheddar and the Parmesan evenly over the surface.
Bake in the preheated oven until the cheese is melted and the top is bubbling and golden, about 15 to 20 minutes. If you like a crispier top, place under the broiler for 1 to 2 minutes, watching carefully so it doesn’t burn.
Remove from oven and let rest for 5 minutes. Garnish with chopped chives or green onions before serving.