Melt the butter in a stockpot over medium heat and saute the diced onions for 5 minutes to soften. Sprinkle the flour over the onions and cook for 2 more minutes, stirring constantly to prevent sticking.
Pour 1 cup of the vegetable stock into the pot. Stir continuously until the mixture starts to thicken and becomes smooth with no visible lumps of flour. Add the remaining 3 cups of stock, half and half, broccoli, carrots, salt, pepper and garlic powder, stir and cover with lid. Simmer over medium-low heat for 20 minutes.
Add the cheese to the soup and stir until melted. Check seasonings and add more if desired. Serve immediately.
Store leftovers covered in the fridge for up to 3 days. Reheat on the stovetop or in the microwave. Freezing is not recommended.