In a large saucepan, melt butter over medium heat. Add onion and cook, stirring occasionally, until softened, about 4 minutes. Add flour and cook, stirring to make a paste, for 2 minutes. Gradually whisk in broth and then bring to a boil. Add broccoli and cook, stirring often until tender, about 3 minutes. Remove from heat.
Using a blender, puree broccoli mixture in batches. Transfer batches to a large bowl. Return puree to saucepan, place over medium heat and bring to a simmer. Gradually whisk in milk and 1 cup cheese. Ladle soup into bowls. Top each serving with croutons and a sprinkling of remaining cheese.