Put the butter or oil in a large, deep saucepan over medium heat.
When hot, add the onion, cauliflower or broccoli, garlic, a large pinch of salt, and some pepper.
Cook, stirring occasionally, until the onion has softened, about 5 to 10 minutes.
Add the white wine and cook for 1 minute, scraping up any bits from the bottom of the pan.
Pour in the vegetable stock, bring to a simmer, and cook until the cauliflower is very tender, about 10 to 15 minutes.
Use an immersion blender to purée the soup directly in the pan until smooth. Alternatively, cool the mixture slightly and carefully purée in a blender in batches until velvety.
Stir in the cream or sour cream. Gently reheat if necessary, but do not let it boil.
Taste, adjust the seasoning with more salt and pepper if needed, and serve immediately.