In a large nonreactive pot (see note), heat the olive oil and 2 tablespoons of butter over medium-low heat. When the butter is melted, add the onions and cook over medium heat, stirring occasionally, until soft and translucent. Do not brown; reduce heat if necessary. Add the garlic and cook for a few minutes more, stirring to be sure garlic does not burn. Add the flour and continue cooking and stirring for 1 to 2 minutes more.
Add the chicken broth, tomatoes, sugar, thyme, 1 teaspoon salt and 1/2 teaspoon pepper. Bring to a simmer over medium-high heat while stirring to make sure that the flour is not sticking to the bottom or sides of the pan. Reduce the heat to low, cover the pan, and simmer for about 30 minutes.
Using a hand-held immersion blender, purée the soup until very smooth. (Alternatively, let the soup cool slightly and purée in batches in a blender. Be sure to crack the lid or remove the center cap to allow steam to escape.) Taste and adjust seasoning with salt and pepper. Stir in the remaining 2 tablespoons of butter. Ladle the soup into bowls and garnish with fresh basil, croutons, and Parmigiano-Reggiano, if desired. (Nutritional information below does not include optional garnishes.)
Note: If you can't find Pomi boxed tomatoes, use canned. Just be sure to cook the soup a little longer, about 40 minutes.
Note: A nonreactive pot is made of a material that will not negatively react with acids. Glass, stainless steel or enameled pots are all safe to use. Nonstick pots are also okay but be sure there are no scratches in the non-stick coating.
Freezer-Friendly Instructions: The soup can be frozen for up to 3 months. Defrost the soup in the refrigerator for 12 hours and then reheat it on the stovetop over medium heat until hot.