Prep the chicken. Pat chicken dry with paper towels. For bone-in pieces, use a sharp knife to score 2–3 shallow slashes on the thickest parts. This helps the marinade penetrate.
Make the marinade. In a large bowl, mix yogurt, lemon zest and juice, garlic, ginger, cumin, coriander, garam masala, paprika, chili powder, turmeric, salt, and oil until smooth and rosy.
Coat thoroughly. Add the chicken and use your hands to work the marinade into every nook, including the slashes.
Make sure all pieces are well covered.
Marinate. Cover and refrigerate for at least 2 hours. For best flavor and tenderness, go 8–12 hours. Avoid more than 24 hours to prevent a mushy texture.
Preheat the grill. Heat to medium-high (about 400–450°F).
Clean and oil the grates well to reduce sticking.
Grill with care. Shake off excess marinade and place chicken over direct heat, skin side down if using skin-on. Close the lid and cook 4–6 minutes per side to get a good sear.
Finish over indirect heat. Move chicken to a cooler zone and cook until internal temperature hits 165°F for breasts or 175–180°F for thighs/drumsticks. Total grill time is about 15–25 minutes depending on cut and thickness.
Rest and garnish. Let the chicken rest 5–10 minutes.
Sprinkle with chopped cilantro or mint. Serve with sliced red onion, cucumber, lime wedges, naan, or rice.