In a large stock pot or dutch oven melt butter over medium heat.
1/2 cup butter
Stir in the chopped onions, and sauté for 3 to 4 minutes.
1 large yellow onion
Add the flour to the sautéed onions.
1/3 cup all-purpose flour
Whisk in the flour, and cook for 2 to 3 minutes.
Add the milk and half-and-half, whisking constantly until combined.
4 cups whole milk, 2 cups half-and-half
Add the salt and pepper, whisk to incorporate, then bring to a boil.
1 tsp kosher salt, 1 tsp black pepper
Add the broccoli florets. Stir to combine, and bring the soup back to a boil.
4 broccoli heads
Cover the pot and reduce the heat to low. Simmer the soup until it is thickened and the broccoli is tender, about 20 to 25 minutes.
Stir in the chicken broth and check the consistency. The soup should be thick, but if it seems too thick add a little more chicken broth.
1/2 cup chicken broth
Add the cheese.
3 cups sharp cheddar cheese
Stir until melted. Taste and adjust the seasonings.
Serve with a pinch of grated cheddar on top for garnish.