Remove all leaves and large stems from the cauliflower. Cut the head into quarters, and use a sharp knife to separate the florets from the thick core. Discard the core, and chop large florets into smaller pieces of uniform size for even cooking.
Place the cauliflower pieces in a large microwave-safe bowl and add the water. Cover with a vented lid, paper towel, or loose plastic wrap. Microwave for 5-7 minutes, until fork-tender. Alternatively, steam the florets in a steamer basket over boiling water for 10-12 minutes. Drain thoroughly and let excess moisture evaporate for a minute.
Transfer the cooked cauliflower to the bowl of a food processor. Pulse for 30-60 seconds, scraping down the sides as needed, until mostly broken down and starting to look creamy.
Add the butter, cream cheese, and sour cream. Process until they are well incorporated and the mixture looks smooth. Scrape down the bowl.
Add the half-and-half, salt, garlic powder, and pepper, then process for another 30–60 seconds. The mash should be very smooth and creamy.
If the mash is too thick, blend in a bit more half-and-half, 1 teaspoon at a time, until it reaches your desired consistency. If it's too watery, add a bit more cream cheese, or transfer the mash to a skillet and cook over low heat, stirring often, to evaporate excess moisture.
Taste and adjust salt and pepper.
Transfer the mashed cauliflower to a bowl and serve hot.