Preparing Chicken - Score each piece of chicken with a few diagonal slashes, about ½ inch into meat. In a food processor or blender, combine onion, ginger, tomato, garlic, chili, salt, cumin and coriander. Process into a rough paste. Rub 1 cup of paste all over the chicken pieces. Save remaining paste. Marinate chicken in refrigerator for at least 1 hour and up to 8.
Prepare Sauce - Heat oil over medium heat. Add remaining paste and stir until liquid evaporates and oil separates out, around 15 minutes. Continue about 5 minutes more to get the paste to turn a deep brown, stirring constantly to not to burn it. Add coconut milk and simmer sauce until it gets as thick as cake batter and turns slightly orange, about 20 minutes. Turn off heat.
Finish Chicken - Heat grill or a heavy skillet over medium-high heat as sauce finishes cooking. Grill chicken pieces until the skin is browned and meat is cooked through. Add the chicken to the sauce, adding a little water if sauce is too thick to coat all the meat. Reduce heat to low and cook another 5 minutes, covered. To serve, season with salt and lemon juice. Garnish with cilantro and serve with rice, chapati or roti.