In a heavy kettle heat 2 tablespoons of the oil over moderately high heat, add the meat in batches and salt and pepper to taste, and saute the meat until it is browned on all sides. Transfer the meat to a plate. To the pan add the remaining oil and the onion and cook the onion, stirring occasionally, over moderate heat for 5 minutes. Add the garlic, curry powder, coriander, cumin, ginger, and cayenne and cook the mixture over moderately low heat, stirring, for 1 minute. Add the flour and cook the mixture, stirring, for 2 minutes. Return the lamb to the pan, add the tomatoes and their liquid, beef broth, raisins, lemon juice and zest, and salt and pepper to taste, bring the liquid to a boil, stirring, and simmer the curry, covered, for 1 1/2 hours. Add the apple and simmer the curry, covered, for 30 minutes more, or until the meat is tender. Serve with rice.
To Freeze: Let the curry cool to room temperature, transfer it to a freezer container with a tight-fitting lid or to a resealable freezer bag, and freeze it for up to 1 month.
To reheat: Defrost the curry in the refrigerator. Transfer the curry to a kettle and simmer it over moderate heat, covered, stirring occasionally, for 15 minutes, or until it is heated through. Correct the seasoning, adding salt, pepper, and fresh lemon juice to taste. Serve the curry over rice and, if desired, accompany it with small bowls of roasted nuts, toasted coconut, and assorted chutneys.