Heat a heavy non-stick pan over high heat. Add the lamb and 3 tablespoons of oil. Sear the meat, turning and tossing, until nicely browned all over. Transfer meat to a plate. Add the remaining 2 tablespoons oil and the onion to the pan and cook, stirring often, until the onions are browned, about 15 minutes. Stir in the ginger, garlic, cumin, coriander, red pepper, paprika, and turmeric and cook for 3 minutes. Add the tomato puree, meat, salt, and enough water to fully cover the meat, about 1 1/2 cups. Bring contents to a boil. Reduce heat and simmer, covered, for 1 1/2 hours or until the meat is cooked and very tender. Fold in the spinach and garam marsala. Serve sprinkled with cilantro.