In a soup pot, heat olive oil over medium-high heat. Add shallots, carrot, and celery and cook, stirring occasionally, until vegetables are softened, about 5 minutes. Stir in lentils and chicken stock and bring to a boil. Reduce heat to low, cover, and simmer 10 minutes. Puree with immersion blender to thicken.
Stir in potatoes and ham, cover, and simmer until potatoes are softened, 10 minutes longer. To serve, ladle soup into bowls and swirl in parsley puree.
Combine garlic, salt, pepper, and parsley in a blender or food processor (preferably small model) and process until pureed.