Heat olive oil n a large enamel-coated dutch oven over medium heat. Add in onion and whole garlic cloves, sprinkle in ½ teaspoon salt and pepper and sauté for 5 minutes, until onion begins to become translucent and brown a little. Throw in the basil near the end of sautéing the onions.
Pour in tomatoes and their juice, chicken broth, water, and bay leaves. Stir together well, and allow the tomato soup to come to a simmer.
After soup begins to simmer, turn heat down to medium low to continue simmering. Cover the pot with lid, and simmer for at least 30 mins up to an hour.
After 30 mins, season with kosher salt, freshly ground black pepper, and brown sugar to taste. Start with 2 teaspoons of sugar and work up to your preferred sweetness.
If the soup tastes too acidic for your liking, stir in the baking soda.
Pour the heavy cream or non-dairy milk into the soup to make it creamy.
Blend the tomato soup smooth, if desired, by pouring soup (in small batches) into a blender or food processor, or taking the pot off the heat and using an immersion blender to carefully blend the soup smooth.
If not using a high-powered blender, use a mesh sieve over a large bowl to strain the skin and seeds out.
Serve hot in a large soup bowl.
Store the creamy tomato soup in the fridge in an airtight container for up to 5 days.