With a fork, prick holes in the chicken pieces. Using a knife, cut diagonal slices 1-inch apart, and 1/2-inch deep into the larger pieces. Place the chicken in a baking dish.
In a blender, combine the oil, onion, garlic, ginger, pepper, and process on high speed to a paste. Add the paprika, salt, cumin, turmeric, coriander, garam masala, and cayenne, and process until well blended. Add the yogurt and lemon juice, and process to a smooth sauce, scraping down the sides to combine all the ingredients. Pour the marinade over the chicken. Turn to coat evenly, rubbing the marinade into the holes and slits. Cover tightly with plastic wrap, refrigerate for at least 4 hours, and up to 24 hours, turning occasionally.
Preheat a grill.
Remove the chicken from the marinade. Place on the grill and cook for 8 to 10 minutes on the first side. Turn, baste as needed, and cook on the second side for 8 to 10 minutes. Turn and continue cooking, as necessary until the chicken is cooked through, but still tender, about 25 to 30 minutes. (Alternately, bake in a preheated 425 degrees F oven on a baking sheet for 35 minutes.)