Trim the lamb, leaving a thin layer of fat. Using the tip of a sharp knife, score the lamb on the fatty side. Put the garlic, tomatoes, onions, coriander, paprika, cardamom and cumin in a food processor and puree until smooth. Set aside 1 cup for basting the lamb while it grills.
Put the lamb in a shallow baking dish and pour the remaining marinade over to coat. Cover the dish with plastic wrap and refrigerate for at least 3 hours or up to overnight.
Remove the lamb from the refrigerator 30 minutes before grilling. Preheat an outdoor grill to medium-high heat. Remove the lamb from the marinade and season both sides generously with salt and pepper. Discard the marinade.
Lightly oil the grill grates to keep the lamb from sticking. Put the lamb on the grill fat-side-down and cook until nicely charred, 15 to 20 minutes. If necessary, move the lamb around the grill to avoid flare-ups. Using tongs, carefully flip the lamb over and grill the second side, basting occasionally with the reserved marinade, until a meat thermometer reads 125 to 130 degrees F for medium-rare, 15 to 20 minutes more.
Transfer the lamb to a cutting board, tent with aluminum foil and rest for 15 minutes; the internal temperature will rise to 135 degrees F. Slice thinly across the grain and serve.