Cook potatoes, onion, and celery in broth and salt in a large soup pot till crisp tender, about 15-20 minutes.
In a skillet or large saucepan, cook the bacon over medium low heat till very crisp. Use a slotted spoon to remove the cooked bacon from pan.
Drain off all but 3-4 tablespoons of bacon grease. Whisk in the flour till there are no lumps. Cook and stir for at least a minute.
Slowly whisk in the milk and cream. Continue to cook and stir till mixture thickens and boils.
Add the white sauce to the vegetable mixture. Mash soup slightly with a potato masher if desired. Stir in the corn, the pepper, and about 3/4 of the bacon. Heat through.
Garnish soup with the remaining bacon and shredded cheese if desired.
Video
Notes
If you have fresh corn, (lucky you), it works great. I don't recommend canned corn, it makes the soup overly salty and doesn't add any sweetness. But it will work in a pinch.
Make sure you brown your bacon over low or medium low heat or the drippings will burn and turn the soup an ugly color. Sadly, I learned this the hard way.