Remove outer leaf and finely chop lemongrass; slice chilli lengthways, scape out seeds then finely chop; thinly slice onion; roughly chop tomatoes.
Heat a large fry-pan on medium heat. Add ¼ cup of the coconut milk, lemongrass and chilli and fry until liquid evaporates and lemongrass is tender, 2-3 minutes. Stir in remaining coconut milk, onion, tomatoes (fresh or canned), lemon juice, fish sauce, sugar and basil leaves. Simmer for 5 minutes.
Pat fish dry with paper towels and remove any remaining scales or bones. Season with salt and pepper. Place whole fish fillets in the coconut sauce, and simmer for 4 minutes, turn fillets over and cook for a further 1 minute or until just cooked.
Steam or lightly saute spinach until just wilted.
To serve, spoon some rice, fish and coconut sauce, and spinach onto each plate. Garnish with basil leaves.