Melt butter in a Dutch oven (or similar sized pot) over medium heat.
Stir in onions, and cook until onions are translucent.
Add garlic and dry mustard. Cook, stirring the entire time, until fragrant, about 30 seconds.
Stir in flour, and cook for 1 minute, stirring regularly.
Stream in chicken broth while whisking to combine.
Add milk and broccoli, and stir to combine.
Bring just to beginning to boil, and then reduce heat to medium-low.
Let soup cook until soup has thickened and broccoli is tender, about 10 minutes, stirring frequently.
Remove from heat, and stir in cream, cheddar cheese, and parmesan cheese.
Season to taste with salt and pepper.
Notes
*I like to use 2% milk for this recipe. Whole milk will give you a richer, thicker soup. Skim will give you a thinner, less rich soup. **I chop up the florets so that they're pretty small to avoid large chunks of broccoli in the soup.***Nutrition values are estimates.