For the marinade: Blend together the garlic, ginger, garam masala, cumin, coriander, black pepper, chile powder, lemon juice, vegetable oil, water, and salt, to taste, in a blender or food processor.
For the lamb: Trim the excess fat and membranes from the leg of lamb. Make deep regular cuts all over the flesh with a paring knife. Rub the marinade into the lamb, making sure you get it into the deep cuts. Place the lamb in a plastic food bag with the remaining marinade and leave in the refrigerator, for a minimum of 6 to 8 hours, or ideally for 24 hours.
For the honey rub: Blend together 2 ounces of the almonds, the yogurt, and 1/2 the honey in a blender or food processor. Take the lamb out of the refrigerator and remove from the plastic bag. Rub the honey blend into the lamb, and leave the lamb for at least 30 minutes, or ideally for another 2 hours, covered, in the refrigerator. Remove the lamb from the refrigerator and bring to room temperature before cooking.
Preheat the oven to 425 degrees F. Place the lamb on a rack with a roasting pan placed underneath the lamb on the rack below. Cook for 15 minutes, then lower the heat to 350 degrees F, and cook for another 1 hour 40 minutes, or until the meat juices run fairly pink when pierced, basting every 20 to 30 minutes.
Scatter the remaining almonds and drizzle the remaining honey over the lamb and roast for another 10 minutes. Check if the meat is cooked using a meat thermometer. The temperature should be 130 degrees F for rare to 150 degrees F for well done, depending on the desired degree of doneness.
Remove the lamb from the oven. Loosely cover the lamb with aluminum foil and allow to rest for 15 minutes before slicing. Pour out the juices, spoon off any excess fat, and serve it on the side. Serve the lamb with roasted potatoes and a vegetable of your choice.