Melt butter in a large pot over medium heat. Add onion and garlic, sauté until softened.
Stir in diced potatoes and pour in broth. Bring to a boil, reduce heat, and simmer 12–15 minutes until potatoes are tender.
Add broccoli florets and simmer another 8–10 minutes, until tender.
In a small bowl, whisk flour and milk until smooth. Stir into soup, simmer until slightly thickened.
Remove from heat. Stir in shredded cheddar until melted.
Season with salt, pepper, and optional spices.
Blend smooth with an immersion blender, or leave chunky for texture.
Serve hot with extra cheese, croutons, or bacon on top.