- 2 tablespoons extra-virgin olive oil, plus more for serving
- 1 medium onion, finely diced (about 1 cup)
- 2 medium carrots, finely diced (about 1 cup)
- 2 ribs celery, finely diced (about 1 cup)
- 4 cloves garlic, minced on a microplane grater
- 1/2 teaspoon dried red pepper flakes
- 1 quart homemade or low-sodium canned chicken broth
- 2 (15-ounce) cans white beans (cannellini or great northern), with their liquid
- 4 6-inch sprigs rosemary, leaves finely chopped and stems reserved
- 1 (3-4 inch) chunk parmesan rind (optional)
- 2 bay leaves
- 3 to 4 cups roughly chopped kale or swiss chard leaves
- Kosher salt and freshly ground black pepper
- Parmigiano-Reggiano for serving
Heat olive oil in a large saucepan over medium-high heat until shimmering. Add onions, carrots, and celery and cook, stirring frequently, until softened but not browned, about 3 minutes. Add garlic and dried red pepper flakes and cook, stirring constantly until fragrant, about 1 minute. Add chicken broth, beans and their liquid, rosemary stems, parmesan rind, and bay leaves. Increase heat to high, and bring to a boil. Reduce to a bare simmer, add kale, cover and cook for 15 minutes.
Discard the bay leaves and rosemary stems. Use a hand blender to roughly puree part of the beans until desired consistency is reached. Alternatively, transfer 2 cups of soup to a blender or food processor and process until smooth (start on low speed and increase to high to prevent blender blow-out). Return to the soup and stir to combine. Season to taste with salt and pepper.
Ladle into bowls, sprinkle with reserved chopped rosemary leaves, drizzle with extra-virgin olive oil and a grating of Parmigiano-Reggiano, and serve with crusty toasted bread.