Place butter in a medium pot.
Place over medium heat and melt butter.
When butter is hot, but not burnt, add onions. Cook, stirring, until translucent and fragrant, about 3 - 4 minutes.
Add flour. Whisk to combine. Cook for a minute or so.
Very slowly our in milk and half-and-half, whisking vigorously.
Add garlic powder, cayenne, nutmeg and broccoli florets.
Allow to heat to a simmer. Then cover and reduce heat to low. Simmer on low for 20 - 30 minutes or until broccoli is soft.
Using an immersion blender or regular blender, pulse soup until smooth, reserving a few broccoli florets for texture.
Return to pot and warm back to simmer.
Add cheese. Stir until melted and incorporated.
Taste. Add salt and pepper, to taste, if and as needed.
Serve in a bread bowl or with sliced french bread.