1. Separate the broccoli stems from the heads. Measure out 3 cups of small florets and reserve. Coarsely chop the remaining broccoli. In a large pot, melt the butter in 1 tablespoon of the olive oil. Add the onion, cover and cook over low heat, stirring occasionally, until softened, about 5 minutes. Add the coarsely chopped broccoli to the pot along with the broth and water and bring to a boil. Cover and simmer over low heat until the broccoli is tender, about 20 minutes. Add 2 cups of the reserved florets, cover and simmer until barely tender, about 5 minutes.
2. Meanwhile, in a small skillet, heat the remaining 2 tablespoons of olive oil. Add the remaining 1 cup of florets and season with salt and pepper. Cover and cook over moderate heat until richly browned, about 6 minutes.
3. Working in batches, puree the soup in a blender until very smooth. Transfer the soup to a clean saucepan. Stir in the cream and milk and bring to a simmer over moderate heat, stirring a few times. Season the soup with salt and pepper and ladle into bowls. Garnish with the sautéed florets and croutons and serve.
Make Ahead: The soup can be refrigerated overnight. Reheat gently.
Recipe Credit: Marcia Kiesel
Image Credit: Frances Janisch