Simmer the cleaned whole fish in a saucepan of water until cooked. Remove fish and let cool before separating the flesh from the bone. Mince the flesh. Strain the stock.
Blend the shallots and ginger together until a puree. Add to the stock and tamarind then heat.
Once the soup base is boiling add in the minced fish and coconut milk making sure to stir frequently to prevent curdling. Turn down the heat and simmer for another 20 minutes or until the soup thickens. Salt to taste.
Blanch the noodles in boiling water, drain and set aside.
Serve the laksa noodles in a bowl, ladle some soup on top and add garnish.
For a different variation called laksam. The noodles used would be a wide flat rice noodle instead of the round laksa noodles.