In a large Dutch oven, melt butter over medium heat.
Add the diced onion, cook for 2-3 minutes or until it is soft and translucent.
Add the garlic, and cook for 30 seconds while stirring constantly.
To make roux, add the flour, and cook for 1 minute. Keep stirring.
While whisking slowly add the liquids to the roux (milk and stock).
Stir in the broccoli florets, add the paprika, keep stirring and cook until the soup starts to thicken.
Reduce the heat to low, and allow to simmer for 5-6 minutes or until the broccoli becomes tender.
Stir in the heavy cream and cheese, and stir until the cheese has melted.
Season with salt and pepper to taste. Serve warm with extra shredded cheddar cheese.