In a large soup pot, heat oil on medium high heat. Add celery, onion, and carrots. Saute for 5 minutes.
Add basil, oregano, tomatoes, and chicken broth. Bring mixture to a boil, then reduce heat and simmer until carrots and celery are tender (about 15 minutes)
While mixture is simmering, melt butter over low heat in a separate pot.
Whisk in flour, and cook on low heat for 5-7 minutes until golden.
SLOWLY add in 1 cup of milk, and whisk until smooth.
Add in other cup of milk and mix until smooth.
Add mixture into soup pot, simmer, stirring constantly, until soup thickens (about 2 minutes).
Whisk in salt, pepper and Parmesan until well blended.
Let soup simmer on low heat, covered, for 15-20 minutes.
Notes
If making in the slow cooker, add tomatoes, celery, carrots, onion, broth, and seasonings to pot. Cook on low for 5-7 hours. 20 minutes prior to serving, prepare roux like above (butter, flour and milk) and add back to slow cooker. Cover and cook on low for 20 minutes.