Heat oil in 4-quart soup pot.
Add celery, onions and carrots.
Sauté 5 minutes.
Add basil, oregano, bay leaf, tomatoes, and chicken broth.
Bring it to a boil, reduce heat and simmer until carrots are tender (15 minutes).
While soup simmers, prepare a roux.
Melt butter over low heat, add flour and whisk until combined.
Whisk and cook for a few minutes so flour browns lightly.
Slowly stir in 1 cup hot soup.
Add another 3 cups and stir until smooth.
Add roux back into soup pot.
Simmer until soup begins to thicken.
Add Parmesan cheese, half and half or cream, salt and pepper.
Simmer over low heat 15-20 minutes, stirring occasionally.