Put the curry powder into a large saucepan, then toast over a medium heat for 2 minutes. Add the olive oil, stirring as the spice sizzles in the pan. Add the onions, apple, garlic, cilantro and ginger, season, then cook for 5 minutes, stirring occasionally.
Add sweet potatoes to the pan with the stock, lentils, milk and seasoning, then simmer, covered, for 20 minutes. Blend until smooth using a stick blender. Or, transfer to a blender in batches to make creamier texture. Stir in the lime juice, check the seasoning and serve, topped with roughly-chopped cilantro and lime zest.