Heat the olive oil or butter in a large pot over medium heat.
Add the chopped onion and cook, stirring, until translucent, about 5–7 minutes.
Stir in the minced garlic and cook 30–60 seconds until fragrant.
Add the diced potato (if using) and cauliflower florets; toss with the aromatics.
Pour in the stock so the vegetables are just covered and bring to a gentle boil.
Reduce heat, cover, and simmer until cauliflower and potato are very tender, about 15–20 minutes.
Remove from heat and let cool slightly for safe blending.
Use an immersion blender (or transfer in batches to a blender) to puree until completely smooth.
Return soup to low heat, stir in the cream or coconut milk, season with salt, pepper and nutmeg; warm through without boiling.
Adjust thickness with reserved stock or water if needed; taste and correct seasoning.
Ladle into bowls, drizzle with olive oil and sprinkle breadcrumbs or toasted nuts and chopped herbs before serving.