Combine garlic and ginger on a cutting board. Sprinkle with salt, and mash to a paste by dragging and pressing broad side of knife over mixture several times. Combine garlic mixture, yogurt, and next 5 ingredients (through ground red pepper) in a large zip-top plastic bag. Add chicken; seal and marinate in refrigerator 8 to 24 hours, turning bag occasionally.
Cut off stems of eggplants. Cut each in half horizontally, and cut off just a strip of the skin on other side, leave the rest intact. Baste with olive oil and sprinkle with salt. Allow to rest 15-30 minutes.
Heat a Dutch oven over medium heat. Add oil to pan; swirl to coat. Add onion; sauté 4 minutes or until browned. Add ginger and garlic; sauté 1 minute. Add coriander, paprika, turmeric, and ground red pepper; cook 1 minute. Stir in crushed tomatoes, and bring to boil. Cover, reduce heat to low, and simmer 20 minutes or until thick.
Preheat grill or broiler.
While masala sauce simmers, remove chicken from marinade; discard marinade. Place chicken on grill & cook 5 minutes. Turn; cook 5 minutes or until browned on all sides but still undercooked in center (chicken will finish cooking in sauce). Grill eggplant as well, it will take less time, so keep an eye on it.
Add the chicken & eggplant to masala sauce. Stir in salt and garam masala; cover and simmer another 20 minutes minutes or until chicken is done. Remove from heat; stir in yogurt and cilantro. Serve over rice.