In a large pot or Dutch oven, melt the butter over medium heat. Add the chopped onions and sauté for 3–4 minutes until softened.
Sprinkle the flour over the onions and cook for 1–2 minutes, stirring constantly to form a roux.
Gradually whisk in the half-and-half and chicken stock. Bring to a boil, then reduce the heat to medium-low.
Add the chopped broccoli and carrots. Simmer for 20–25 minutes, or until the vegetables are tender.
Optionally, use an immersion blender to blend one cup of the soup for a smoother texture (or leave it chunky if preferred).
Reduce the heat to low and slowly add the shredded cheddar cheese, stirring until fully melted.
Season with salt, pepper, and nutmeg (if using). Stir well and adjust seasoning to taste.
Serve hot with a side of crusty bread.