Sauté Vegetables: In a large pot or Dutch oven over medium heat, melt 1 ½ Tbsp of butter. Add carrots, celery, and onion. Cook for 4-5 minutes until softened. Add garlic and cook for 30 seconds more.
Simmer Soup Base: Stir in chicken broth, potatoes, and thyme. Season with salt and pepper. Bring to a boil over medium high heat, then reduce heat to medium, cover, and simmer for 15 minutes.
Add Broccoli: Stir in the chopped broccoli florets. Cover and cook for 5 more minutes, or until vegetables are tender. Remove pot from heat.
Make Cheese Sauce: While soup simmers, melt remaining 4 Tbsp butter in a medium saucepan over medium heat. Whisk in flour and cook, whisking constantly, for 1 minute.
Thicken Sauce: Gradually pour in milk while whisking vigorously to prevent lumps. Cook, stirring constantly, until mixture thickens and coats the back of a spoon (5-7 mins). Remove from heat and stir in heavy cream.
Combine & Add Cheese: Pour the cheese sauce into the pot with the cooked vegetables. Stir to combine. Remove the pot from the heat. Gradually add shredded cheddar and parmesan cheese, stirring until completely melted and smooth.
Season & Serve: Taste and adjust seasoning with more salt and pepper if needed. Serve immediately.