Heat three tablespoons of oil in a pan and sauté the onion and chillies for three minutes.
Stir in the ginger, garlic, chilli powder, coriander, turmeric and salt.
Add the chicken and fry on a low-to-medium heat for eight minutes, until the chicken is lightly browned.
Tip in the tomatoes and potatoes and cook for two minutes.
Pour in 100ml (3½fl oz) of the coconut milk and simmer for six minutes.
Add the remaining coconut milk with 200ml (7fl oz) of boiling water.
Simmer for 10 minutes, until the potatoes are tender and the chicken is cooked.
In a separate pan, heat the remaining oil and add the curry leaves and shallots, if using.
Fry for five minutes until golden brown.
Sprinkle the garam masala over the stew and swirl in an extra two tablespoons of coconut milk.
Serve hot, garnished with fried shallots and curry leaves and basmati rice.