Heat the oil in a saucepan
Add the onions and fry until golden brown
Add the tomatoes, salt, ginger, garlic and all the powdered spices (except garam masala)
Fry on low heat for 10 minutes, adding a little water at a time until sauce is well blended
Add yoghurt (optional) and tomato puree and cook until sauce is thick
Add the chicken and potatoes, cook on medium heat stirring occasionally until chicken juice is dried up
Add 2-3 cups water to desired consistency (the gravy should be quite thick if it is to be served with naan or paratha and slightly runny it It is to be served with rice)
When chicken is cooked add coriander leaves, garam masala powder and lemon juice
Bring to boil and serve with naan, paratha, rotli or rice