Pat the lamb shanks dry and season them with salt and black pepper on all sides.
Heat the vegetable oil in a large Dutch oven over medium-high heat. Brown the shanks in batches until they develop color on all sides, then set them aside.
Lower the heat to medium. Add the chopped onions to the pot and cook until they soften. Stir in the minced garlic and grated ginger and cook for another minute.
Sprinkle in the garam masala and turmeric. Stir the spices with the onions for 30 seconds until they smell fragrant.
Pour in the diced tomatoes with their juices and the beef broth. Scrape the bottom of the pot to loosen any browned bits.
Return the lamb shanks to the pot. Add the rinsed lentils and bring the mixture to a gentle boil.
Reduce the heat to low, cover the pot, and simmer for about 2 hours. Stir occasionally until the lamb is very tender and the lentils are soft.
Taste and adjust salt and pepper if needed. Serve the stew in bowls topped with chopped cilantro and a spoonful of plain yogurt.