Heat a dutch oven over medium heat. Add butter, onion, and garlic. Cook for 4 minutes.
Stir in flour and cook for 30 seconds. Add broth and potatoes. There should be enough broth to cover the potatoes, so start with 4 cups and add more as needed. Season well with salt and pepper. Bring to a boil, then reduce to a simmer for 20 minutes. Use an immersion blender to blend into a creamy soup (you can also blend in batches in a regular blender).
Stir in broccoli, carrots, milk, cream, thyme, sage, and more salt and pepper to taste. Bring to a boil again, then reduce to a simmer for 10 minutes or until broccoli is cooked to your preference. Stir in shredded cheese. Taste and adjust seasonings as needed, or add an extra splash of cream if desired!
