In a large dutch oven, melt butter over medium heat.
Add onion and cook until beginning to soften, about five minutes.
Add bacon and garlic and cook for two minutes
Add flour and stir until there is no dry flour remaining and mixture begins to darken.
Add chicken broth and diced tomatoes.TIP: Want to add even more flavor to your soup? Try substituting fire roasted tomatoes for the called for typical diced tomatoes.
Stir until combined.
Add thyme, bay leaves, salt and pepper and turn heat to low.
Stir to combine and allow soup to simmer for 30 minutes.
Remove bay leaves. Using an immersion blender, puree soup until no large pieces remain.TIP: Don't have an immersion blender? Instead, you can transfer your soup in small batches to a blender or food processor and puree to desired texture. You'll want to insure you don't fill your blender or food processor too full to avoid burning yourself - and making a huge mess!
Stir in heavy cream and season with additional salt and pepper, if necessary.