Melt butter in pot over medium-high heat. Add in onions and cook, stirring frequently until nearly soft, about 4 - 5 minutes.
Add in garlic and flour, and cook for about 1 minute, stirring constantly.
While whisking, slowly pour in milk then chicken broth. Stir in broccoli.
Cook stirring constantly until mixture begins to thicken. Then reduce heat to low and allow to cook, stirring very frequently, until broccoli is tender, about 6 - 8 minutes.
Remove from heat. Stir in heavy cream then stir in cheddar and parmesan cheese, mixing until melted.
Season with salt and pepper to taste. Serve warm with more cheddar if desired.
*From about 2 heads of broccoli, use floret portion only. I began with about 1 lb broccoli crowns, chopped off majority of the stems, then chopped the florets into very small pieces about 1/2 inch. Sometimes I like extra broccoli so I use 4 cups.
**For milder flavor use sharp cheddar for bolder flavor use extra shape cheddar cheese.
**Use freshly shredded cheese from blocks of cheese for best flavor and texture.