Melt the butter in a large dutch oven over medium heat. Add the onion and cook for 4-5 minutes, until softened, stirring occasionally.
Add the cubed potatoes, chicken broth and the kosher salt and bring to a boil, then reduce the heat to a rolling simmer and cook the potatoes for about 8 minutes or until soft and easily pierced with a fork. Whiz the potatoes and broth with an immersion blender to the consistency you desire (I like to leave some chunks of potato), or mash with a potato masher.
Add the broccoli florets and the milk and bring to a boil, then reduce to a simmer, cooking for 5-7 minutes or until the broccoli is al denté.
Toss the cheese with the flour and add to the soup 1 cup at a time, stirring until melted before adding the next batch of cheese. Season with black pepper and more salt to taste.
*I used fresh broccoli in this soup, but frozen will work in a pinch.