Cut the chicken into large pieces. If you must use chicken breasts, cut them into 4-6 pieces. Just keep in mind that by using breasts, you're reducing both the fat content (yay!) AND the flavor (boo) and the result will be slightly drier chicken.
Chop half of the onions coarsely. Cut the remaining onions into halves, lengthwise, and then crosswise into very thin slices.
Put the chopped onions, ginger and garlic into the container of an electric blender. Blend to a paste.
Put the oil in a large, wide sauté pan or a large, deep frying pan (nonstick) and set over medium heat. When hot, put in the sliced, onions. Stir and fry the onions until they are a deep, reddish brown color. Remove the onions with a slotted spoon, squeezing out and leaving behind as much of the oil as possible. Put on a plate and set aside.
Take the pan off the heat. Put in the paste (keep face averted). Put the pan back onto the heat. Stir and fry the paste until it is brown, about 3-4 minutes. Now put in the ground coriander, cumin, turmeric and cayenne and stir once. Put in 1 Tbsp of the yogurt. Stir for about 30 seconds or until it is incorporated in the sauce. Add all the yogurt this way. Add the chicken pieces and stir them around for a minute.
Pour in the water, add the tomatoes and salt. Stir to mix and bring to a simmer. Cover, turn heat to low, and cook for 20 minutes. Sprinkle in the garam masala and the fried onions. Mix. Cook, uncovered, on medium heat for 7-8 minutes or until the sauce reduces and thickens.
Skim off the fat and put the chicken in a warm serving dish. Sprinkle the cilantro or parsley over the top. Nom!