Heat a large soup pot over medium heat and add the bacon. Cook, stirring occasionally, until crisp, about 10 minutes.
Remove the bacon bits with a slotted spoon to a paper towel, leaving the bacon fat in the pan.
Add the butter, onion, and celery, and season with a pinch of salt. Cook for 5 minutes, until softened.
Add the flour and cook, stirring frequently, for 1 minute.
Add the diced tomatoes, chicken stock, bay leaf, and black pepper. Bring to a boil, reduce to a simmer over low heat, and cook (covered) for 20 minutes, giving the bottom of the pan a good scrape every 5 minutes.
Add the heavy cream, remove the bay leaf, then season the soup to taste with salt. Because chicken stocks can vary in salt content, it's important to adjust it to your liking (I usually add 1/4 to 1/2 tsp more salt).
Let the soup cool slightly, then blend the soup in batches, until silky smooth. Serve with the crumbled bacon on top, and any other desired toppings, like croutons, or a side of grilled cheese. Enjoy!
This soup is still delicious without the bacon, so if you’re vegetarian, just leave the bacon out and use vegetable stock.