Chop the broccoli into small florets and set aside. Dice the onion and mince the garlic. Grate the cheddar cheese. Gather your tools — a heavy-bottomed pot, whisk, knife, chopping board, and immersion blender.
Melt the butter in the pot over medium heat until it begins to sizzle and smell nutty, about 1 minute. Add the diced onion and sauté until translucent and fragrant, about 5 minutes, until it turns slightly golden.
Add the minced garlic to the onions and cook for 30 seconds until fragrant, being careful not to burn it. This creates a flavorful base for the soup.
Sprinkle the flour over the onion and garlic mixture, stirring constantly for 1-2 minutes until the flour turns a light golden color and smells toasty. This roux will thicken the soup later.
Gradually pour in the milk and vegetable broth, whisking constantly to prevent lumps. Bring the mixture to a gentle simmer, allowing it to thicken slightly, about 3-5 minutes.
Add the broccoli florets into the simmering soup. Cover the pot and cook for about 10 minutes, until the broccoli is bright green and just tender when pierced with a fork.
Remove the pot from heat. Use an immersion blender to blend the soup directly in the pot until smooth and velvety, or transfer in batches to a blender and puree until silky. Be careful with hot liquids.
Return the pureed soup to low heat. Stir in the grated cheddar cheese until melted and smooth. Adjust the seasoning with salt and pepper to taste. If desired, add a splash of hot sauce or squeeze of lemon for brightness.
Cook for another 2-3 minutes, stirring occasionally, until the cheese is fully incorporated and the soup is hot and creamy.
Pour the hot soup into bowls, garnish with extra cheese or herbs if desired, and serve immediately. Enjoy the rich, cheesy, and slightly chunky bits of broccoli in every spoonful.