Heat oil in a large pot over medium heat. Add onion, carrot, and celery and saute until vegetables are softened, about 7-8 minutes. Add garlic and saute for 1 more minute.
Add Italian seasoning, red chili flakes, parmesan rind, canned white beans, crushed tomatoes, and vegetable broth. Season with salt and pepper. Bring to a boil, reduce heat to low and continue to simmer for 20 minutes.
Remove parmesan rind. Transfer half of the soup to a blender and puree until smooth. Add pureed soup back to the pot, stirring to combine.
Add milk and parmesan, stirring until parmesan is melted. Adjust seasoning with salt and pepper.
Ladle soup into bowls and top with a dollop of pesto. Sprinkle extra parmesan on top if desired and season with freshly cracked black pepper. Serve immediately.
Notes
Do not drain the beans, add the beans with the liquid from the can to the soup.