Place a large, heavy-bottomed stock pot over medium heat, and add olive oil, onion, carrot, and celery. Sauté for 4-5 minutes, until vegetables become tender.
Add garlic and sauté 1 minute longer, making sure garlic softens but doesn’t begin to brown.
Add tomatoes, chicken broth, bay leaf, sage, thyme black pepper, beans, kale and ham. Stir to combine.
Cook over medium heat for 15-20 minutes, allowing flavors to meld.
Meanwhile preheat oven to broil. Coat torn pieces of bread with olive oil, sprinkle with salt, and place under broiler until slightly brown, being careful not to burn them.
Add browned chucks of bread to soup pot, barely incorporating them so they don’t get soggy.
Ladle soup into bowls and top each bowl with Parmesan cheese. Serve hot.