Peel and finely slice the red onion, pick the coriander leaves and set aside, then finely slice the stalks. Peel and finely chop the ginger, then finely chop the chilli.
Heat 1 tablespoon of olive oil in a large saucepan over a medium heat. Add the red onion, coriander stalks (not leaves) and dried spices, then fry for about 1 minute, until the mustard seeds start to pop.
Add the chopped ginger and green chilli, then cook for a further 5 minutes, or until the onions have softened, stirring occasionally.
To prepare the rice, peel and finely chop the onion, then add to a pan over a medium heat with 1 teaspoon of vegetable oil and the butter. Cook for 5 minutes, or until just colouring. Put a kettle of water on to boil.
Sprinkle in the spices, keeping the dried chilli whole (if using), and cook for 1 minute. Turn up the heat, add the rice and stir well.
Fill the mug you used for the rice with boiling water (about 350ml, or twice the volume of the rice) and add to the pan, with a good pinch of sea salt. Bring to the boil, cover and reduce the heat.
Simmer for 12 to 15 minutes over a low heat, or until the water has been absorbed and the rice is cooked.
Roughly chop the fresh tomatoes and add to the spiced onions with a splash of boiling water. Bring to the boil, season, then simmer for 5 minutes, or until thickened and darkened slightly.
Stir in the prawns and coconut milk and cook for 3 to 5 minutes, or until the prawns are pink and cooked through.
Fluff up the rice with a fork, then serve with the curry, removing the chilli (if using), and a scattering of the coriander leaves on top.