Heat a large pot, add the olive oil, garlic and onions. Saute until onions are soft, about 2 minutes.
Add the cauliflower, carrots, celery, potatoes, thyme, rosemary, salt and pepper. Stir until combined. Add the chicken broth and simmer for 20-25 minutes, or until soft.
In a medium pan, melt the butter. Whisk in the flour until it forms a paste. Slowly add in the milk and whisk until smooth. Add the cheese and continue to whisk together until the cheese is completely melted and a slightly thickened roux forms.
Slowly add the roux to the soup and stir until combined.
With an immersion blender, blend half of the soup together just until it has a thick and creamy texture. You could also transfer half of the soup to a blender or blend with a handheld potato masher. Stir until the soup is completely blended together. There will be small chunks and the soup will thicken. Let simmer for another 5 minutes.
Top the soup with more shredded cheese and serve with fresh bread or toasted baguette slices. Enjoy!
If you've tried this recipe, come back and let us know how it was in the comments or star ratings!