-
1
Place a medium saucepan over medium-low heat and add the oil and butter.
-
2
When the butter melts, add the onion and a big pinch of salt.
-
3
Cook, stirring occasionally, until the onion is completely soft, about 15 minutes.
-
4
(If at any point the onion looks like its beginning to brown, reduce the heat.)
-
5
Add the garlic and optional red pepper flakes and cook for 5 minutes more, stirring occasionally.
-
6
Increase the heat to medium and add the tomatoes and their juices to the pan.
-
7
Roughly crush the tomatoes with the back of a wooden spoon and cook until theyre hot and beginning to soften, about 10 minutes.
-
8
Add the broth or water and bring to a simmer.
-
9
Cook at a medium simmer until the tomatoes begin to fall apart, about 15 minutes.
-
10
Remove the soup from the heat and cool slightly, about 10 minutes.
-
11
Puree the soup directly in the saucepan using an immersion blender, or use a countertop blender, carefully pureeing the soup in a couple of batches until smooth.
-
12
Return the soup to the burner over low heat and stir in the cream.
-
13
Add black pepper, then taste and adjust the seasoning with additional salt or pepper as needed.
-
14
Serve in warmed bowls, as is or topped with the garnishes of your choice.