Blend shallots, garlic, ginger, curry powder and oil to make the curry paste.
Heat oil in a wok or large, deep fry pan and add sliced onion, fry a few minutes until golden, stirring frequently. Add a little water if onion is catching or burning.
Add curry paste and fry a further 5 minutes, adding a little of the coconut milk to prevent the paste drying out, if needed.
Add lemongrass, chilies and curry leaves and fry a few minutes while stirring.
Add potatoes, stirring a few more minutes, adding coconut milk as necessary.
Add chicken pieces, fry for 5 minutes, then add the remaining coconut milk, water, soy sauce and salt to taste.
Simmer for 10-15 minutes until chicken and potato is almost cooked, stirring occasionally to prevent it sticking to the bottom.
Add vegetables and simmer a further 10 minutes. Taste and add more salt if required.