Heat oil in a large saucepan. Sauté chopped onions in oil until they are golden. Stir occasionally.
Once onions are golden, add grated ginger and garlic. Cook for 2 minutes. Stir. Stir in chopped tomatoes. Cook, stirring occasionally, until tender. Stir in curry powder. Cook, stirring, for 2 more minutes.
Season chicken breasts with salt and pepper. Cook for 5 minutes until golden. Cook for another 2-3 minutes. Cover the pan with water and let it cook for 10 minutes.
Stir in coconut milk/cream and season with garam masala, and salt, and continue cooking until the mixture becomes slightly thickened.