In a Dutch oven, melt butter over medium heat. Add onion and carrots and cook until soft, about 5 minutes.
Sprinkle flour over onion/carrot mixture. Cook and stir for 2 minutes.
Gradually add chicken broth, whisking constantly. Add half-and-half. Bring to a simmer.
Add broccoli and stir into mixture. Simmer for 20 minutes, stirring occasionally. If desired, use a potato masher to break broccoli up some.
Turn heat to low. Add shredded cheeses. Stir until melted. Add cream cheese in small chunks and whisk well to combine.
Stir in salt, peppers, and garlic powder.
Let simmer for a few minutes and serve.
Notes
To make this soup spicy, double the amount of crushed red pepper flakes.Use vegetable broth to make it vegetarian.Nutritional info is provided as an estimate only and will vary based on brands of products used. Not to be used for specific dietary needs.