In a large pot over medium heat, melt the butter. Add the onion and cook 3 to 4 minutes.
Sprinkle the flour on top of the onion, and use a whisk to work in the flour. Once it’s combined, cook the onion-flour mixture for 2 to 3 minutes.
Add the milk and half-and-half, whisking constantly until combined.
Sprinkle in the salt, pepper, and nutmeg.
Stir the broccoli florets into the soup. Cover the pot and reduce the heat to low, then simmer the soup until it’s thickened and the broccoli is tender, 20 to 25 minutes.
Stir in the chicken broth and check the consistency. The soup should be thick, but if it still seems too thick, splash in a little more broth.
Add the cheese and stir until melted. Serve the soup in bread bowls.
NOTE: For a smoother soup, use an immersion blender to puree the soup before adding the cheese.