Add the cauliflower to a large pot and cover with water.
Cover the pot with a lid and bring the water to a boil. Continue to boil until the cauliflower is fork tender, approximately 10 minutes. Drain and transfer to a large bowl.
Using an immersion blender, break up the cauliflower until chunky.
Add the butter, cream cheese, parmesan, garlic powder, onion, salt and pepper to the cauliflower.
Puree the cauliflower until smooth. Season with salt and pepper to taste.