Melt butter in a large pot over medium heat. Add onion and sauté for 5 minutes until soft and translucent. Stir in garlic and cook for another minute until fragrant.
Sprinkle flour over the onion mixture and stir constantly for 2 minutes to create a roux. This will thicken your soup beautifully!
Slowly pour in the broth while whisking continuously to prevent lumps. Add milk and cream, stirring well to combine.
Add broccoli florets and bring the soup to a gentle simmer. Cook for 15-20 minutes until broccoli is tender.
Reduce heat to low. Gradually add cheese one handful at a time, stirring until completely melted before adding more.
Season with salt, pepper, and nutmeg. Taste and adjust seasoning as needed. Serve hot with crusty bread for dipping!