Sauté the Vegetables: Heat olive oil in a large pot over medium heat. Add carrots, celery, and onion. Sauté for 5-7 minutes until softened.
Add Garlic and Herbs: Stir in garlic, thyme, and rosemary. Sauté for another 1-2 minutes until fragrant.
Deglaze the Pot: Pour in the broth and use a spoon to scrape up any browned bits from the bottom of the pot.
Add Tomatoes, Beans, and Pasta: Stir in the diced tomatoes, cannellini beans, and ditalini pasta. Bring to a simmer and cook for 10-12 minutes, until pasta is al dente.
Blend for Creaminess: Use an immersion blender to blend about 1-2 cups of the soup for a creamy texture. If using a regular blender, carefully transfer and blend until smooth, then stir back into the soup.
Finish with Balsamic Vinegar: Add a splash of balsamic vinegar and season with salt and pepper to taste.
Serve: Ladle soup into bowls, top with grated Parmesan cheese, and serve with crusty bread.