Heat oil in a large soup pot or dutch oven. Add in the chopped carrots, celery and onion. Saute for about 5 minutes, then add the garlic and continue to saute for another 3 minutes or so.
In a blender, add the can of tomatoes and blend until mostly smooth. Add to the pot along with the water and ham bone. Bring to a boil and then add the sweet potatoes and simmer for about 10 minutes, until the potatoes have softened, stirring occasionally.
Add in the remaining ingredients, excluding the balsamic vinegar and fresh herbs (if substituting dried herbs, add them now). Cover pot and simmer for 45 minutes to one hour. The cooking time could vary greatly depending on what lentils you use, so keep an eye on the pot and taste as you go until the lentilshave reached your desired texture. Take note, this soup is on the thicker side.
When the lentils done cooking, remove from heat and pull out the ham bone and bay leaf. Pull meat from ham bone, ensuring you don't get too much fat or tendons, then dice meat. Stir in the chopped herbs, balsamic vinegar, meat from bone, and diced ham. Serve on its own or with rice.