In a large soup pot or Dutch oven, melt 1 tablespoon butter over medium heat. Add the onion, garlic, and broccoli stems; sauté until soft and fragrant, about 5 minutes.
Add remaining 4 tablespoons butter to the soup pot. When butter is melted, add flour to the pot. Cook over medium heat for about 2-3 minutes, until flour is thickened.
Slowly pour in the milk and half and half, whisking constantly. (It will start thick but eventually it will thin out and resemble a creamy soup base.) Continue to thin it out, gradually whisking in the broth. Simmer for 10 minutes or so, whisking occasionally to reincorporate the skin that may form.
When the soup base is thickened nicely, stir in the broccoli, carrots, and spices. Simmer for 10 minutes or so, until the broccoli bits are bright green and fork-tender.
Transfer the pot off of heat and allow to cool slightly for a few minutes.
Stir in most of the cheese until melted. Stir in the same direction (i.e. counter clockwise) to best incorporate.
