Put the potatoes in a medium pot, cover with cold water and salt generously. Cover and bring to a boil over high heat. Cook until fork-tender, 20 to 30 minutes. Drain the potatoes, reserving 1/4 cup cooking water. Return the potatoes to the pot and let dry in the still-hot pot, about 2 minutes.
Meanwhile, in a small saucepan set over low heat, melt the butter. Stir in the half-and-half.
Add the butter mixture and cream cheese to the potatoes. Season with salt and pepper. Smash with a potato masher or large fork. If the potatoes seem too thick, add some of the reserved cooking water, 1 tablespoon at a time. Taste and add more salt and pepper, if needed. Serve warm.