Cut the cauliflower, including the core, into 1-inch pieces. Bring a large pot of water to a boil and salt lightly. Add the cauliflower and cook over medium heat until completely tender, 20 minutes to 30 minutes. Drain cauliflower in a colander.
With a bowl or small plate, press on the cauliflower to remove all water. Toss the cauliflower and continue pressing out the water. This step is very important to the texture of the dish. Transfer the cauliflower to a food processor. Add the cream and puree until completely smooth. If you like a chunkier texture, mash by hand, adding the cream after cauliflower is mashed. Return to pot.
When you are ready to serve, heat over low heat, stirring constantly. Add the butter, parmesan and cream cheese. Stir until incorporated. Season to taste with salt, if necessary. Serve immediately.