Heat the oil in a large pot over medium heat. Add the lamb neck pieces and brown them on all sides, about 8 minutes total. Remove the lamb and set it aside.
Add the onion to the pot and cook until softened, about 5 minutes. Stir in the garlic and ginger and cook for 1 minute more.
Add the cumin, coriander, turmeric, garam masala, and chili powder. Stir for 30 seconds until fragrant.
Return the lamb neck to the pot. Add the lentils, water, and salt. Bring to a boil, then reduce to a low simmer. Cover and cook for 2 hours, stirring now and then, until the lamb is very tender and the broth has deepened in flavor.
Stir in the spinach and cook just until it wilts, about 3 minutes. Remove from heat.
Spoon the stew over bowls of cooked basmati rice and top with chopped cilantro.