Sprinkle the chicken with the curry powder, garam masala and salt. Rub in then cover and set aside.
Put the onion, garlic, ginger, cayenne pepper and paprika into a blender with a couple of tablespoons of water then blend into a smooth paste.
Heat the oil in a large, non-stick, lidded saucepan and add the onion paste. Cook on a medium heat until it turns a couple of shades darker; about 7 minutes.
Add the chicken and stir for 3-4 minutes.
Add the tomatoes, lemongrass and fish sauce then stir for about 2 minutes.
Stir in 250ml warm water and bring the curry to the boil. Pop the lid on and reduce the heat to low and cook gently for 25-35 minutes stirring occasionally to make sure it is not sticking. The chicken will begin to fall apart.
Take off the lid and turn up the heat a little to reduce the sauce for about 5 minutes.