In a large pot, heat the olive oil over medium heat. Add the chopped onion, garlic, carrots, and celery. Sauté for about 5-7 minutes, or until the vegetables are softened.
Stir in the thyme, rosemary, and bay leaf, cooking for an additional minute until fragrant.
Add the ham bone, chicken broth, soaked white beans, and diced tomatoes to the pot. Bring the mixture to a boil.
Reduce the heat to low, cover, and let it simmer for about 1.5 to 2 hours, or until the beans are tender and the flavors are well combined.
Remove the ham bone from the pot. Allow it to cool slightly, then shred any remaining meat from the bone and return the meat to the soup.
Season the soup with salt and pepper to taste. Remove the bay leaf before serving.
Ladle the soup into bowls and garnish with fresh parsley.