In a large pot, melt butter over medium heat, then add the onion.
Cook for 3 to 4 minutes until the onion is translucent.
Sprinkle the flour over the onion and stir to combine.
Cook the mixture for another minute to eliminate the raw taste of the flour.
Pour in the chicken broth and stir continuously until the mixture thickens slightly.
Bring to a simmer.
Add the broccoli florets and cook until they are tender, about 15 minutes.
Use an immersion blender to achieve a smoother texture if desired.
Stir in the half-and-half, shredded cheese, cayenne pepper, salt, and pepper.
Keep stirring until the cheese has melted completely.
Serve hot.