Rinse broccoli and cut into medium florets, about 5 cups total. Optionally peel and dice the tender inner stalk into 1-inch pieces.
Melt butter with olive oil in a Dutch oven over medium heat. Add onion and cook for 5-7 minutes until soft and translucent. Add garlic and cook for 30-60 seconds until fragrant, without browning.
Sprinkle flour over the onion mixture and stir constantly for 1-2 minutes until the raw flour taste cooks out and the mixture smells slightly nutty.
Whisk in 1 cup of broth until smooth, then add the remaining 3 cups. Bring to a gentle boil, stirring frequently.
Add broccoli, garlic powder, onion powder, and nutmeg. Reduce heat to medium-low, cover with the lid slightly ajar, and simmer for 15-20 minutes until broccoli is very tender.
Remove from heat and cool slightly. Using an immersion blender, puree the soup on high for 1-2 minutes until completely smooth and velvety. For an ultra-silky finish, pass through a fine mesh strainer.
Return to low heat if needed. Stir in heavy cream and warm gently for 3-5 minutes, without boiling. Season with salt and white pepper to taste.
Ladle into bowls and garnish with fresh chives, a swirl of cream, croutons, or shredded cheddar cheese if desired. Serve hot with crusty bread.