Heat a knob of butter in a large pan, add the onion and stir for a minute with the heat on high. Turn the heat to low, add the cinammon, cardamom, cloves and fennel seeds, stir for 5 minutes. Add the ginger and garlic and cook for another 5 minutes on a low heat, stirring occasionally to make sure nothing catches. Add the turmeric, coriander and chilli powder and fry gently for a minute. Add the tomato purée and stir in enough hot water to make it saucy. Bring to the boil and simmer, stirring occasionally for 20 minutes. Season with salt.