Heat butter and oil in a large nonstick pot over medium-high heat.
Add onion, garlic, carrot, celery and saute for a few minutes until onion is softened and translucent.
Add lentils, tomatoes, broth, cumin powder, coriander powder, Italian seasoning, paprika, ginger powder, salt, pepper, bay leaf and mix everything together.
Bring to a simmer.
Then, lower heat to medium. Cover and cook for about 40 minutes or until lentils are soft.
Uncover and use a hand-held blender to roughly puree the soup. Don't puree it too much or else it will loose its chunky texture.
If soup is too thick, mix in a little more broth or water. If soup is too thin, cook uncovered until extra liquid is reduced.
Optional: Mix in some lemon juice to add a subtle zesty kick.
Garnish with parsley and enjoy!