Peel potatoes and cut into bite-size cubes. Prepare leeks: remove dark green leaves, cut in half lengthwise without cutting all the way through; thoroughly wash the white and light green part under cold water to remove any grit. Slice the leek thinly.
Place potatoes and leek in a large pot of boiling salted water; add onion and garlic. Cook, covered, about 15 minutes.
Drain into a colander and set aside.
Cook bacon until crispy; crumble and set aside.
In the same large pot, melt butter; add flour and salt and pepper. Blend with a wire whisk, and add milk gradually, stirring constantly with whisk.
When mixture begins to thicken, add the potatoes and leeks back into the pot, stirring until blended.
Add the crumbled bacon to the soup; mix well.
Add the cheese to the soup and mix well. Stir frequently until cheese is melted and soup is heated through.
Spoon into bowls and top with croutons if desired.