1 Blanch the broccoli: Bring a large pot of water to a boil and add a few big pinches of salt. Add broccoli stalks and blanch for 2 to 3 minutes until they are bright green and fork tender, but still slightly crispy.
Drain broccoli. Scoop out and set aside about 1 cup of the florets for the topping.
2 Cook the onions and carrots: Wipe out the pot, place over medium heat, and melt the butter. Once melted, add the onions and carrots, and cook until veggies soften, 4 to 5 minutes, stirring regularly.
3 Cook the soup: Stir in the all-purpose flour. The flour will form a paste with the veggies. Cook for a minute or two to coat the vegetables, and then start to slowly pour in vegetable stock. Stir constantly as you pour in the stock to avoid lumps.
Once all the stock is added, bring soup up to a low simmer. Add milk and the blanched broccoli (except what you’re saving for the topping). Simmer for about 10 minutes over low heat.
4 Puree the soup: Blend with an immersion blender, or let the soup cool until no longer steaming and blend in batches in a blender. (If using a blender, be careful to let the soup cool a bit and do not overfill the blender to avoid splattered hot soup!)
5 Season to taste and serve: Add the grated cheese, salt, and pepper to the pureed soup and stir over low heat until the cheese has melted. Taste soup and season with additional salt and pepper to your liking.
Ladle the soup into bowls and garnish with some reserved broccoli and extra cheese on top. Serve with bread.