Heat the butter in a large soup pot over medium-high heat. Add the diced onion and cook for about 5 – 6 minutes or until it starts to get soft.
Add the flour and stir nonstop for 2 minutes
Pour in the broth and tomatoes and bring to a boil
Whisk constantly
Simmer on low heat for 30 minutes.
Remove from the heat and puree the soup either in a blender (in batches) or with a handheld immersion blender - which is what we do - until it's smooth and the big chunks of tomatoes are blended up.
Stir in heavy cream and salt & pepper to taste.
Serve warm with any herbs you'd like to add - fresh basil or rosemary are good choices. Top with bacon, croutons or plain!