In a large bowl, add broccoli, 2 tablespoons olive oil and salt. Stir to coat evenly.
Spread broccoli on a foil lined (or I used a reusable silicone mat) and roast for 20-25 minutes or until lightly browned.
Prepare the Soup
While s the broccoli is roasting, heat the remaining two tablespoons of olive oil in a large saucepan.
Add the onions, green onions, carrots, celery, salt and pepper. Sauté until soft, about 7 minutes.
Add the roasted broccoli and sauté for another few minutes.
Add the broth to saucepan and bring to a boil. Reduce the heat and simmer for about 30 to 35 minutes, until vegetables are soft.
Remove pan from heat and add the milk.
If you have an immersion blender, blend until mixture is smooth and creamy. If not, portion out soup and blend in a regular blender until creamy. Add more milk as needed if the soup is too thick.
Top with about a tablespoon of sour cream if desired.
Notes
Make this vegetarian by substituting the chicken broth with vegetable broth.