In a medium pot, melt 1/4 cup (1/2 stick) unsalted butter over medium heat. Add 1 medium yellow onion, diced medium and cook stirring occasionally, until softened, 5 to 8 minutes.
Add 1/4 cup all-purpose flour and cook, stirring until combined, 1 to 2 minutes.
Whisking constantly add 4 cups low-sodium vegetable broth (or chicken broth) and 1 cup water and bring to a boil over high. Reduce heat and simmer, whisking occasionally, 10 minutes.
Add 1 pound or head of cauliflower, cut into florets, stems peeled and chopped, and bring to a simmer. Cook until cauliflower is very tender, 25 to 30 minutes.
Use a handheld mixer or transfer mixture to blender and puree’ until smooth to your desire. If using blender and not handheld mixer return to pot as pureed. Note: I like mine a little chunky!
Add 1 cup of 2 % organic milk or 1/4 organic heavy cream and heat over medium until warmed. Season with coarse salt and ground pepper. Thin with broth or water if desired.