Melt the butter in a large saucepan and sweat the onion and leeks for a couple of minutes.
Add the potatoes and the stock and bring to the boil. Turn the heat down, cover with a lid and let the soup simmer for 20 minutes, or until the vegetables are tender.
Meanwhile, fry the bacon in a frying pan until crisp. Add a little oil if needed.
When the soup is almost ready, add the leek tops to the pan and fry them with the bacon while you finish the soup. Season with freshly ground pepper.
Blend the soup until smooth, add the cream and season to taste with salt and plenty of freshly ground pepper. Adjust the consistency with more stock if you prefer a thinner soup.
Serve the soup with crème fraîche and the bacon and leek mixture.