Soften the onions: Heat the butter or oil in a large pot. Add the sliced onions and cook gently over medium heat until soft and fragrant.
Add garlic and bacon: Stir through the bacon and garlic, cooking until the bacon is lightly golden.
Add liquid: Pour in the hot water or stock, whisking as you go to prevent lumps. If using water, add the stock powder.
Cook potatoes: Add the diced potatoes and simmer for around 15 minutes, or until tender but not falling apart.
Make a roux: In a separate bowl, sprinkle in the flour and the larger measure of butter and mix the two together to form a paste. Once the potatoes are cooked and fork-tender. Add the flour paste to the soup and stir until it dissolves and makes the soup thicker. Add less or more until you get your desired thickness.
Finish with cream: Remove from the heat and stir in the cream. Adjust seasoning with extra salt and pepper.
Serve: Ladle into bowls, scatter with chives or parsley, and enjoy while hot.