Melt the butter in a large saucepan over medium high heat. The entire soup will be made in this pot so make sure it is big enough.
Add in the onions and saute for about 5 to 7 minutes. Stir in the flour until a paste forms and cook for 1 to 2 minutes.
Whisk in the chicken stock until smooth and bring to a boil. Add in the potatoes, corn, sugar, salt and pepper. Cover and simmer until the potatoes are tender, about 15-20 minutes (cooking time will depend on how large you cut your potatoes).
When the potatoes are tender, add in the milk and cream and stir to combine. Bring to a boil and simmer for another 5 minutes. Taste and season with additional salt and white pepper as desired. Serve hot topped with crumbled bacon (optional).
The flour in this recipe can be replaced with 1 ½ tablespoons of cornstarch
White pepper is used in this recipe so that the black flakes are not visible for a more appealing dish. However, if you don't have white pepper you could always use black pepper, you'll just have a speckled soup.