- In a large pot, melt butter over medium heat. Add diced onion and sauté until soft and translucent, about 4–5 minutes. 
- Sprinkle in flour and stir continuously for 1 minute to form a roux. 
- Slowly whisk in chicken broth, milk, and heavy cream. Stir until smooth. 
- Add diced potatoes. Bring to a boil, then reduce heat and simmer uncovered for about 10–12 minutes or until potatoes are fork tender. 
- Add in shredded chicken, corn, salt, and pepper. Simmer another 5 minutes to heat through. 
- Stir in cheddar cheese if using. Let melt and give it one final stir before serving warm.