Start by tying the parsley sprigs, thyme, and bay leaf together with kitchen twine and then set aside. Next, crisp the bacon in a large soup pot set over medium-high heat. Add the bacon and butter and cook until crisp but not burned, about a minute. Then transfer the bacon (use a slotted spoon if you need) to a paper towel-lined plate and set aside. Leave the butter and bacon fat in the pot and add the onion, carrots, celery, and garlic to the pot and reduce the temperature to medium. Cover and cook the vegetables (stirring occasionally) until they are soft and fragrant, about 8-10 minutes.
Next, add the flour and whisk into the mixture. Cook the flour for about three minutes before adding in the broth and tomatoes. Then bring the whole mixture to a boil, whisking constantly. When the mixture begins to boil, add in the tied herbs and lower the heat until you reach a simmer. Allow everything to simmer for 30 minutes before removing from the heat and allowing the mixture to cool.
When the mixture has cooled, remove the herb bundle and discard. Then, using your immersion blender, blend the soup until you have reached the consistency you desire. Alternatively, you can strain the soup through a sieve to remove any chunks or seeds. When the soup is the desired texture, return it to the stove and reheat over medium heat before whisking in the heavy cream and salt. Season with pepper to taste before serving! Garnish with the crispy bacon, sour cream, and cheese if desired.