Melt the butter in a large stock pot over medium heat. Add the onion and saute for 3-4 minutes. Add in the garlic and saute for an additional minute.
Next add the potatoes, chicken broth, and salt. Bring the mixture to a boil then reduce heat and simmer for 10 minutes or until the potatoes are tender.
Using an immersion blender, blend the potatoes to your desired consistency. I like to leave some of the potato chunks in my soup but you can blend it smooth.
Add the broccoli and the milk and bring to a boil. Reduce heat and simmer for 10 minutes.
Toss the cheese with the flour and mix well. Add the cheese a handful at a time, stirring well after each addition, until all the cheese has melted into the soup.
Season with black pepper and more salt if needed.
Serve topped with cheddar cheese, homemade croutons, or a dollop of sour cream.