Combine marinade ingredients, coat halibut, thread onto skewers, and chill for two hours.
Preheat the grill to its highest setting.
Grill skewers for 10 minutes, basting with butter and lemon juice until golden.
Blend onion, garlic, and chillies in a food processor until smooth.
Fry the onion mixture in peanut oil for 7 minutes until brown.
Blend coriander, ginger, and tomatoes until smooth.
Add tomato mixture to the pan and cook for 20 minutes until reduced.
Stir in spices and then gradually add the yoghurt.
Add milk, bring to a boil, then simmer for 5 minutes.
Serve fish with sauce, garnish with coriander, and accompany with rice and naan.