50 gmghee20fresh curry leaves, plus extra sprigs, to serve5cloves of garlic, sliced10 (about 300gm) red shallots, finely chopped 2 tspground turmeric1stick of cinnamon, halved5cardamom pods, lightly bruised50 gm (1/3 cup) Sri Lankan curry powder1.5 litresfish stock2 tspfennel seeds, soaked in water for 10 minutes1.2kgsweet potato, cut into 1cm pieces2375ml tins coconut cream2½ tbsp vegetable oil6 (about 200 gm each) snapper fillets, skin on and pin-bonedTo serve:Steamed basmati rice, plain yoghurt, chutney and pickles, optional
Heat ghee in a heavy-based saucepan and, when a light haze comes over the pot, add curry leaves, garlic and shallots, and stir over medium heat for 5 minutes until shallots are translucent. Add remaining dry ingredients and cook for 4 minutes, stirring continuously or until lightly toasted and fragrant. Add stock and drained fennel seeds and bring to the boil.
Add sweet potato and simmer for 10 minutes or until just tender. Using a slotted spoon, transfer sweet potato to a tray. Bring curry base to the boil, add coconut cream and bring to the boil, then remove from heat. Season to taste with sea salt and ground black pepper.
Heat oil in a large, heavy-based frying pan over high heat, add snapper fillets, skin-side down, pressing to ensure skin is touching pan evenly. Cook for 3-4 minutes, then turn and cook for another 3 minutes until just cooked through.
To serve, add sweet potato to curry sauce and cook until heated through, spoon rice into shallow bowls and top with snapper and a sprig of curry leaves. Ladle curry sauce into individual small bowls and pass separately. Serve immediately with small bowls of yoghurt, chutney and pickles, if using.