Heat the oil in a large, flameproof casserole dish. Add the onion and cook for 5 minutes until softened. Stir in the garlic, ginger and whole spices and cook for 1 minute until the spices start to sizzle.
Add the ground spices, stir well, then add the tomatoes and coconut milk. Bring to the boil, then reduce the heat and simmer for 10 minutes.
Season to taste, add the sweetcorn and cook for 2–3 minutes until just tender. Serve scattered with the coriander.