1 tablespoon olive oil
1 tablespoon unsalted butter
1 small to medium yellow onion, coarsely chopped
1 (28-ounce) can whole peeled tomatoes in their juices, preferably San Marzano
1 1/2 cups low-sodium chicken broth or water
2 bay leaves
1/3 cup heavy cream
generous salt and pepper
1. Heat oil and butter in a medium saucepan over medium heat. Once butter foams, add onion and a big pinch of salt. Season with freshly ground black pepper. Cook, stirring occasionally, until onion is completely soft and just beginning to brown, about 15 minutes.
2. Add tomatoes and juices to the pan and stir to crush up tomatoes. Add broth or water and bay leaves and bring to a simmer. Simmer until tomatoes begin to fall apart, about 10 minutes.
3. Remove from heat, discard bay leaves, and allow soup to cool slightly. Carefully purée soup in a blender until smooth (you may have to do this in batches). Return soup to the stove over low heat and stir in cream. Taste and adjust seasoning as desired.