Preheat the oven to 450ºF. In a large rimmed baking sheet, combine the tomatoes, vinegar, garlic, 2 tablespoons of the olive oil, and a 1/4 teaspoon of salt. Toss well, then arrange the tomatoes in a single layer, skin side down, and roast until tender, about 45 minutes. Set aside to cool slightly, then slip the skins off the tomatoes for a silky-smooth soup.
In a large saucepan over medium heat, heat the remaining 2 tablespoons of olive oil. Add the onions and cook, stirring often, until very soft, about 10 minutes. Add the basil and sage and cook, stirring occasionally, for about 1 minute.
Transfer the sauteed onions and herbs to a blender, along with the roasted tomatoes, garlic, and their juices from the pan. Blend until smooth. You shouldn't need to add water at this point, but you can add 1 cup of water if you need to help move things along.
Pour the blended mixture back into the pan, and add in 2 cups of water. (Or just 1 cup, if you added some in the last step.) Season with 1 teaspoon of salt and 1/2 teaspoon of pepper, or to taste, then bring the soup to a simmer. Adjust the flavor to taste, adding a tablespoon of maple syrup if you need added sweetness, or a 1/4 cup of coconut milk, if you'd like added creaminess. You can also add an additional 1 cup of water, for a thinner soup consistency. In that case, just add more salt, as needed to boost the flavor.
Let the flavors simmer together for 10 minutes on the stove, then serve warm. Leftovers will keep well in an airtight container in the fridge for up to 5 days.
Nutrition information is for 1 of 8 servings, or 1 1/4 cups of soup. This information is automatically calculated, and is just an estimate, not a guarantee. For a creamy variation, add a 1/4 cup of full-fat canned coconut milk, instead. You may also want to add 1 tablespoon of maple syrup, for additional sweetness.