In a large pot, heat the butter or olive oil over medium heat. Add the chopped onion and garlic, and sauté until they become soft and translucent (about 5 minutes).
Add the cauliflower florets to the pot, then pour in the broth. Bring the mixture to a boil, then reduce the heat and let it simmer for about 20 minutes or until the cauliflower is very tender.
Use an immersion blender (or transfer the soup to a blender in batches) and blend until smooth and creamy.
Stir in the milk or cream and heat the soup for an additional 5 minutes, but don’t let it boil. Season with salt and pepper to taste.
Ladle the soup into bowls and top with your favorite toppings like cheese, bacon, or green onions.