If you want to use the optional bacon, start by frying the bacon bits in a large stockpot until crisp. Remove bacon bits and reserve. (If there is more than a few tablespoons of bacon grease, drain some off.) Saute the leeks and celery in the bacon grease until soft and translucent.
If you prefer to make the soup without bacon, simply saute the vegetables in a combination of butter and oil (about 2 Tbsp each) until soft.
Add the cubed potatoes, broth and just enough water to cover the potatoes. (Sometimes I add a tiny bit of turmeric, a couple of pinches or so, to the pot to enhance the buttery golden color) Bring to a boil and then turn to medium and cook until potatoes are tender.
Partially mash some of the potatoes and set the pot aside to make the roux in the microwave.
In a small microwaveable bowl, melt the butter and stir in the flour. Microwave for another minute, stirring half way through to cook out the raw taste.
Add the milk to the stockpot and heat through. Stir in the roux vigorously and bring back to a low boil to thicken. Add the cream and stir. If the soup is too thin, you can either make a little more roux, or add some instant potato flakes or mash the potato chunks a little more to thicken. If too thick, add some more milk or even chicken broth.
Let the soup simmer on very low temp, stirring occasionally to prevent sticking or burning, for 10 to 15 minutes. Add salt and pepper to taste. Because the bacon and the chicken broth both have salt, you will need to determine how much to add for your preference. I use quite a bit because the potatoes really take up a lot of salt.
Return the bacon to the stockpot or use it as a garnish on bowls of the soup. You can also garnish with some fresh chopped chives or some green onion tops finely chopped, or the ultimate in decadence, with a little dab of butter that melts in the center of the bowl.