Heat a large saucepan on medium heat and add butter. When the butter is melted, add the onions and stir.
To the pan, add the potatoes and flour. Stir. Next, add the broth and stir.
To the pan, add the pieces of roasted garlic, salt, pepper, milk and stir.
Put a lid on the pan, turn the heat to low and simmer until the potatoes are fork tender (about 10 to 15 minutes). While the potatoes are simmering, make the crispy onion topping (optional).
Turn the heat off to pan off. Mash and mix the potatoes with a whisk or immersion blender leaving some chunks.
If the soup is too thick add a bit more broth. Stir in the cheese.
Serve warm. Garnish with chopped green onion. Top with crispy onion (optional).