For the marinade: Place the tomatoes, onion, garlic, ginger, poppy seeds, turmeric, fennel seeds, gram masala, and salt into a food processor and blend until smooth.
Transfer the marinade to a large mixing bowl, and add the lamb. Cover the bowl with plastic wrap, and leave to marinate in the refrigerator for several hours, or overnight, if possible.
For the curry: Heat 2 tablespoons of the oil in a large pan, add the nigella and cumin seeds and stir fry for about 30 seconds, or until the cumin begins to brown and becomes fragrant.
Add the marinated lamb and cook over a medium heat, stirring frequently, for about 12 to 14 minutes. Taste to ensure the spices have been cooked - it should have no harsh elements.
Add the water and bring the mixture to a boil. Then lower the heat, cover, and simmer for 35 to 40 minutes, or until the lamb is tender. Check on the pot regularly, stirring occasionally, and adding more water if it gets too dry.
Halfway through cooking the lamb, heat the remaining 1 tablespoon of oil in a small pan and gently fry the chiles for two minutes, stirring often. Pour the chiles into the curry.
Once the lamb is cooked, uncover and stir in the tamarind paste. Taste and adjust the seasonings, add a little extra water, if necessary, and stir in the fresh cilantro. Serve the lamb with naan or rice.