1. Heat the oil in a large soup pot over medium heat. Add the onions, celery, and carrots and cook until the vegetables begin to soften 6 to 8 minutes. Add the garlic and pepper flakes and cook for 1 minute. Add the chopped tomatoes (with juice), kale and chard, and cook until the kale is wilted, 8 to 10 minutes.
2. Puree 1 cup of the beans and 1 cup of the broth in a food processor. Add to the soup along with the remaining beans and 6 cups broth. Bring to a boil over high heat. Reduce the heat to low and simmer for 20 minutes.
3. Stir in the basil, salt, and bread cubes (if using) and simmer until the bread thickens the soup, about 10 minutes. Serve sprinkled with the Parmesan.
TIP: For extra flavor, sauté 1/4 cup chopped pancetta along with the carrots. You can also add the rind from a wedge of Parmesan cheese to simmer in the soup. It adds a super-rich taste of Parmesan.