Preheat an oven. Rip the bread into bite-size pieces about 1-2-inches big, then place on a rimmed baking sheet. Drizzle with extra virgin olive oil, toss well, then toast until the bread is crispy and lightly golden brown. Set aside.
Heat remaining extra virgin olive oil in a large Dutch oven or soup pot over medium-high heat. When hot, add diced onion, carrots, and celery, then season with Kosher salt. Cook, stirring occasionally. Add chopped garlic, stir.
Add whole peeled tomatoes, either crushing them by hand directly over the pot or breaking up in the pot with a spatula. Add vegetable broth or water, then bring to a simmer.
To the pot, add chopped kale leaves, rosemary bundle, bay leaves, and a Parmesan rind, if using. Simmer.
Place half of the beans in a bowl, then use a fork to mash well. Alternatively, for a smoother texture, you can purée these in a food processor.
Add mashed cannellini beans, remaining whole cannellini beans, red wine vinegar. Remove the bay leaves, herb bundle, and Parmesan rind. Taste and adjust seasoning as needed.
Finish each bowl of soup with a generous drizzle of a high quality extra virgin olive oil. Top with a few remaining bits of toasted bread, then enjoy immediately!