Chop the onion, carrot, and celery into small pieces. Slice the basil leaves into strips.
Add olive oil and butter to a large stock pot, and bring up to medium heat. When the butter melts, add the onions, carrots and celery. Cook for about 5 minutes, or until soft.
Add the garlic and cook for another 30 seconds until fragrant.
Stir in the flour and cook for another 2 minutes, then add the chicken broth and the crushed tomatoes.
Stir to combine and bring the soup to a boil before reducing the temperature to low. Cover with a lid and cook for 30 minutes, stirring occasionally. Cook longer for thicker soup.
Use an immersion blender to blend the soup until it is completely smooth.
Stir ¾ cups of the cream into the pot. Season with salt and pepper.
Garnish each bowl with a drizzle of the remaining cream, fresh basil, croutons, and cracked black pepper.