Heat butter and olive oil in a large dutch oven (or soup pot) over medium heat.
Add onions and season lightly with salt and pepper. Sauté until translucent, stirring frequently (about 5 to 7 minutes).
Mix garlic into onions, then cook just until fragrant, stirring constantly (about 30 seconds).
Stir in broccoli, potatoes, broth, and rosemary sprig. Bring to a boil, then reduce heat to a simmer. Continue cooking until veggies are very tender, stirring occasionally (about 20 minutes).
Mix in parsley and continue cooking just until it's bright green and tender (1 to 2 minutes).
Remove soup from heat, then puree until totally smooth using an immersion blender (or in batches, using a standard blender).
Return soup to medium heat, then add the milk and minced rosemary. Cook just until hot and heated through.
Stir in cheese, then season to taste with salt and pepper.
Serve hot. Enjoy!
Notes
This recipe makes about 5 ½ cups soup, or 4 (1 ¼ cup) servings.To prep the broccoli, trim off the tough stem end (about ½-inch from the bottom), then use a paring knife or vegetable peeler to remove the peel and any tough / stringy bits from the stalk. The remaining stalk (which you can chop into 1-inch pieces) should be pale green / whitish looking. I used 5 large broccoli stems for this recipe.For best results, use whole milk. A thick, creamy, neutral tasting plant based milk will also work (I used my fave soy milk).Make sure to read the info before this recipe card for helpful tips, topping ideas, variations, serving suggestions, and more!