In a large saucepan, melt the butter over medium heat.
Add the onion and sauté until golden, about 10 minutes.
Stir in the flour and let cook for a minute or two.
Slowly whisk in the milk, heavy cream, chicken broth, water and salt
Add the cauliflower and bring the mixture to a boil. Reduce heat to medium-low, cover and simmer until the cauliflower is fork tender, about 10-15 minutes.
Blend up the soup in a couple of smaller batches until completely smooth. (Make sure to remember to remove the center part of the lid to stop the blender from exploding.)
Return the soup to the saucepan and heat over medium-high heat until nice and hot.
Remove from heat and whisk in the mustard, cheeses, 1/2 tsp salt and white pepper until melted and smooth.
Garnish soup with extra cheese, bacon and chives as desired.