To make the onion purée, bring a small pan of water to the boil and add half the chopped onions. Boil them for 5 mins until soft, drain and puree with a hand blender or mini food processor.
Heat a large saucepan on a high heat. Once it's hot add the oil and remaining chopped onions and reduce to a low heat. Cook the onions slowly and gently for 15-20 mins until golden brown in colour.
Make a paste of ginger purée, garlic purée, curry powder, tumeric powder, chilli powder and a splash of water. Add to the pan of onions and stir in well. Fry for a couple of mins. Add the diced chicken and stir in well.
Mix the yogurt, tomato purée and onion purée together in a jug with 800ml water. Pour into the saucepan and mix well. Turn up the heat until the sauce begins to boil. Simmer for 15 - 20 mins. Stir occasionally.
Finally sprinkle in the garam masala and stir in well for the final 2 mins before serving.