Wash the broccoli and spinach thoroughly. Chop the broccoli into florets, discarding the tough stems. Mince the garlic and chop the onion.
In a large pot or Dutch oven, melt the butter over medium heat. Add the chopped onion and minced garlic. Sauté until the onions turn translucent and the garlic becomes fragrant, usually about 3-4 minutes.
Add the chopped broccoli florets to the pot. Stir and cook for another 4-5 minutes, allowing the broccoli to slightly soften.
Add the fresh spinach to the pot. Stir it in and let it wilt for about 2-3 minutes.
Pour in the vegetable or chicken broth. Increase the heat and bring the mixture to a boil. Once boiling, reduce the heat to low and let it simmer for 10-12 minutes until the broccoli is tender.
Turn off the heat. Using an immersion blender or transferring the soup to a blender (in batches if necessary), blend the soup until smooth and creamy. Be cautious when blending hot liquids; allow the soup to cool slightly if using a regular blender.
Return the pot to low heat and pour in the heavy cream. Stir it in gently until well combined. Let the soup simmer for an additional 5 minutes, allowing the flavors to meld together.
Taste the soup and adjust the seasoning with salt and pepper according to your preference. Ladle the creamy broccoli and spinach soup into bowls. Optionally, garnish with grated cheese, croutons, or fresh herbs before serving.