Melt the butter in a Dutch oven or large soup pot over medium heat.
Add the diced onion and cook for 4 to 5 minutes, stirring occasionally, until soft and translucent.
Add the garlic, dried thyme, black pepper, smoked paprika, and nutmeg, if using. Cook for 30 seconds, until fragrant.
Add the cauliflower florets and diced potato, if using. Stir well to coat the vegetables in the butter and seasonings.
Pour in the vegetable broth and bring the soup to a gentle boil.
Reduce the heat to a simmer. Partially cover the pot and cook for 15 to 18 minutes, or until the cauliflower and potato are very tender.
Turn off the heat. Use an immersion blender to blend the soup until completely smooth. Alternatively, carefully blend the soup in batches using a countertop blender.
Return the soup to low heat. Stir in the whole milk, heavy cream, and Dijon mustard, if using. Warm gently without boiling.
Remove the pot from the heat. Add the grated cheddar cheese one handful at a time, stirring until smooth after each addition.
Taste the soup and season with salt and extra black pepper as needed. Add a splash of milk or broth if you prefer a thinner consistency.
Ladle into bowls, add your favorite toppings, and serve hot.