1. 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.
2. Place tomatoes in a food processor; process until pureed to measure 2 cups. 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 tomato puree, and bring to boil. Cover, reduce heat to low, and simmer 20 minutes or until thick.
3. Preheat grill or broiler.
4. While masala sauce simmers, remove chicken from marinade; discard marinade. Thread chicken onto 4 (12-inch) metal skewers. Place skewers on grill rack or broiler pan; cook 3 minutes. Turn skewers over; cook 3 minutes or until browned on all sides but still undercooked in center (chicken will finish cooking in sauce).
5. Remove chicken from skewers; add to masala sauce. Stir in salt and garam masala; cover and simmer an additional 6 minutes or until chicken is done. Remove from heat; stir in yogurt and cilantro. Serve over rice.