Begin by heating vegetable oil in a large pan over medium heat. Add cumin seeds, mustard seeds, fenugreek seeds, fennel seeds, and nigella seeds. Sauté for a minute until they begin to sizzle and release their aromatic fragrance.
Add the finely chopped onions and sauté them until they turn translucent and acquire a gentle golden hue.
Add minced garlic and ginger into the mix, and cook for an additional 2 minutes until the pungent raw aroma dissipates.
Add turmeric powder, red chili powder, and coriander powder. Stir thoroughly to amalgamate the spices with the onion mixture.
Add the diced tomatoes and cook until they soften, and the oil starts to separate from the mixture.
Now, add bite-sized pieces of lamb into the pan. Cook and stir for approximately 5 minutes until the lamb begins to brown.
Reduce the heat and pour in plain yogurt. Stir it into the lamb mixture and cook for an additional 2-3 minutes until the yogurt is fully integrated.
Pour in enough water to cover the lamb, season with salt, and bring the mixture to a gentle simmer.
Cover the pan and let the lamb cook over low heat for about 45 minutes to 1 hour, or until it becomes tender and the oil starts to rise to the surface. Stir occasionally, and add more water if necessary to prevent sticking.
Once the lamb reaches the desired tenderness and the curry thickens, remove it from the heat.
Garnish with fresh coriander leaves and serve hot.