Prepare the potatoes: Peel potatoes if desired and cut into even 1- to 1½-inch chunks so they cook uniformly.
Start cooking: Place the potato pieces in a large pot and cover with cold water by about an inch. Add a generous pinch of salt, then bring to a gentle boil over high heat. Reduce heat to maintain a simmer.
Cook until tender: Simmer for 12–18 minutes depending on potato size. Potatoes are done when a fork slides easily through the center with little resistance.
Warm dairy: While the potatoes cook, warm the milk or half-and-half and soften the cream cheese and butter (leave at room temperature or microwave briefly in 5–7 second bursts). Warming keeps the potatoes fluffy and prevents cooling when mixed.
Drain and steam-dry: Drain the potatoes in a colander and return them to the hot pot. Place the pot over low heat for 30–60 seconds, tossing gently to allow excess water to evaporate. This keeps the mash from becoming watery.
Mash the potatoes: Use a potato masher, ricer, or food mill to break up the potatoes to your desired texture. For the smoothest result, a ricer or food mill works best; for a rustic texture, use a masher.
Add cream cheese and butter: Immediately add softened cream cheese and butter to the hot potatoes, mixing until incorporated. The heat will help melt them into the potatoes for a creamy base.
Adjust texture with warmed milk: Pour warmed milk or half-and-half gradually while stirring until you reach the desired consistency. Add sour cream at this stage if using, for extra tang.
Season and finish: Season with salt and freshly ground black pepper. Taste and adjust seasoning. Stir in chopped chives or green onions and fold gently.
Serve and garnish: Spoon into a warmed serving bowl and add an optional pat of butter or sprinkle of chopped herbs. Serve immediately for the best texture and warmth.