Add oil to a large soup pot over medium high heat. Once hot, add carrots, onions, and celery and sauté them for a few minutes.
Add diced tomatoes, tomato paste, chicken broth, oregano, and dried basil. Bring to a gentle boil and cook for several minutes, until the vegetables are tender.
Use an immersion blender or regular blender (you may need to do this in batches, depending on how big your blender is) to puree the soup until smooth. (This step is optional, if you like a smooth soup). Return it to the soup pot.
In a separate pot, prepare the roux. Add butter to the pot over medium low heat and allow to melt. Stir in the flour and whisk together constantly for about 10 minutes or until the roux is a nice golden brown color.
Add a big ladle full of the soup to the roux--it will start to form a thick paste. Add a few more big scoops of soup to the roux and stir well until smooth. Add the roux mixture to soup pot and stir to combine.
Stir in the parmesan cheese, half and half, salt, pepper and basil. Add additional oregano and basil if needed, to taste. Stir well. Cook for a few more minutes until warmed through.
Store tomato basil soup covered in the refrigerator for up to one week.
Slow Cooker: Add diced tomatoes, carrots, onions, celery, tomato paste, chicken broth, oregano, and basil to the slow cooker. Cook on low for 5-6 hours until flavors are blended and vegetables are soft. Continue with step three of the above recipe.Or make it in the Instant Pot.Freezer Instructions: To properly freeze this soup, leave out the cream and shredded cheese before freezing it. Then add the cream and cheese after reheating. (Otherwise they may curdle when reheated from frozen.)