In a heavy-bottomed saucepan, add the olive oil or butter over medium heat. Stir in the onion and allow it to cook down for 3-4 minutes.
Add the garlic, and stir for another 2 minutes.
Add the tomatoes (juice and all), and turn the heat up to medium-high. Break up the tomato chunks a bit and cook for a few minutes. Stir often, and don't let it burn.
Add the stock, milk/cream, smoked paprika, parsley, basil, and oregano. Bring to a near boil stirring the whole time.
Using an immersion blender, blend the soup to your desired consistency. Want it all smooth? Go for it! A few chunks? This is your world; this soup just lives in it. If you don't have an immersion blender, carefully transfer the hot soup to a blender. Leave the center cap on the lid off to allow the steam to release.
Once blended, add the baking soda and stir to combine. You'll notice a bit of foaming action with the baking soda; totally normal. Finish with a drizzle of balsamic vinegar.