Melt 2 tablespoons of butter in a medium sized stock pot, sauté onion, garlic and celery in butter until soft. Add broccoli and stock, cover and simmer for 10 minutes, until broccoli is cooked.
Pour half of the soup into a blender, filling the pitcher no more than halfway full. Carefully puree the broccoli mixture until smooth, and return to stock pot. If you prefer a completely smooth soup, puree up to the entire batch of broccoli mixture, just make sure to work in batches if needed so you are only filling the blender halfway to avoid any overflows of hot soup.
Melt butter in a small sauce pan, whisk in flour and cook over medium heat for 3-5 minutes. Stir constantly and add the milk. Stir until thick and bubbly, and add to broccoli soup in stock put and stir well to completely distribute milk mixture throughout soup.
Add cheese and salt and pepper to taste. Stir in nutmeg.