6 cups peeled and diced russet potatoes (about 5 medium potatoes, cut into small 3/4-inch cubes)
1 1/2 cups chopped yellow onion (1 medium)
1 1/4 cups peeled and diced carrots (3 medium)
1 cup diced celery (2 stalks)
2 cans low sodium chicken broth (14.5 oz each)
Salt and freshly ground black pepper
1/3 cup butter
1/3 cup all-purpose flour
2 1/2 cups milk
1/2 cup sour cream
Chopped cooked bacon or chopped cooked ham, shredded cheddar cheese, chopped green onions or chives.
Combine potatoes, carrots, celery and diced onions with chicken broth in a large pot and season with salt and pepper to taste.
Cover the pot and bring to a boil over medium-high heat (it will take about 10 minutes to reach a boil).
Once boiling, reduce heat to medium and continue cooking for 15 to 20 minutes, until potatoes are very tender when pierced with a fork.
Meanwhile, in a medium saucepan, melt butter over medium heat, add flour and cook for 1 minute, whisking constantly. While whisking, slowly add the milk and cook, stirring constantly, until the mixture begins to thicken.
When potatoes are tender, add thickened milk mixture to potato soup mixture and stir (potatoes should begin to break down into soup).
Add sour cream and mix well.
Ladle soup into serving bowls, top each serving with bacon or ham, cheddar cheese and green onions.