Prep the cauliflower: Remove leaves and core, then cut into uniform florets so they cook evenly.
Cook the bacon: In a skillet over medium heat, cook chopped bacon until crisp. Transfer to a paper towel-lined plate.
Reserve 1 tablespoon of bacon fat.
Cook the cauliflower: Steam florets over boiling water for 10–12 minutes, or boil in salted water for 8–10 minutes, until very tender when pierced with a fork. Drain well.
Dry it out: Return the hot cauliflower to the empty pot over low heat for 1–2 minutes, stirring, to steam off excess moisture. This prevents a watery mash.
Flavor base: Add butter, reserved bacon fat, and garlic to the warm pot.
Stir 30 seconds until fragrant.
Mash or blend: Transfer cauliflower to a food processor (for super smooth) or use a potato masher/immersion blender (for rustic). Pulse or mash with butter/garlic mixture.
Creamy additions: Add sour cream, heavy cream (start with 2 tablespoons), cheddar, and Parmesan if using. Blend until creamy.
Adjust cream for your desired consistency.
Season: Taste and season with salt and black pepper. Fold in most of the bacon and chives, reserving some for topping.
Finish and serve: Spoon into a serving dish. Top with extra cheddar, remaining bacon, and chives.
Serve hot.