Add the onion and carrot to a large pot with ¼ cup water or vegetable broth over medium heat, then sauté for 4 to 5 minutes, or until the onions have softened.
Add the potatoes, garlic, ginger, apples, and diced tomatoes to the pot. Sauté for another 3 minutes, then add all of the spices and toss to coat.
Add the lentils and broth and let the contents come to a boil. Turn the heat down to medium-low and simmer uncovered for 30 minutes. Add more water or broth if it gets too thick.
Transfer about half of the soup, slightly cooled, into a blender and blend until smooth. Then pour back into the pot and stir well. Or use an immersion blender to cream part of the soup in the pot.
Stir in the coconut milk and cook a few more minutes.
Taste, and adjust salt and black pepper as needed.
Serve topped with scallions along with crusty bread or naan for dipping.
