Heat oil in a large saucepan or wok over high heat. Add onion, garlic, curry leaves and a pinch of salt, and stir-fry until fragrant and onion softens (1-2 minutes). Add curry powder and stir continuously until fragrant (1 minute). Add tomato and cook until it starts to break down (2-3 minutes), then add coconut milk, tamarind, lemongrass and ginger, bring to the boil, then reduce heat to medium and simmer until well flavoured (5-6 minutes).
Add snapper and beans and simmer until just cooked (4-5 minutes). Remove pan from heat, add sugar and season to taste with fish sauce. Serve with steamed rice, coriander and lime wedges.