Trim and finely chop the broccoli, keeping the florets and stems separate.
Melt the butter in a large pot over medium heat.
Add the onion and broccoli stems. Stir occasionally until the stems begin to soften. Add in the garlic, salt, and pepper. Stir until fragrant.
Add the flour and cook for one minute, stirring often.
Slowly add in the vegetable broth and milk. Bring to a boil, then reduce heat to medium-low and let simmer until the stems are fork tender. Then, add in the florets and simmer another 3-5 minutes until they are tender.
Remove from the heat and purée the soup using an immersion blender until smooth.
Return the pot to the heat and keep it on low. Stir in the cheddar cheese and let warm until the cheese has melted.
Ladle into bowls and top with additional shredded cheese, if desired.