Heat the oil in a large sauté pan. When the oil is hot, add the onions. Cook over medium heat, stirring occasionally, for 4 to 5 minutes until they are soft, but not brown.
Add the ginger, garlic, jalapeño, curry powder, coriander, cumin and salt and pepper and continue to cook for 2 minutes more.
Add the tomatoes and their juices, the coconut milk and the sugar. Bring the sauce to a gentle boil and cook for another 3-4 minutes to combine the flavors.
Place the fish filets into the sauce. Reduce heat to medium low and cover the pan.
Cook the fish until it is cooked through, but not falling apart (4-8 minutes depending on the thickness of the fish).
Just before serving, stir the chopped cilantro into the sauce.
To serve, place a scoop of basmati rice on each plate. Top with a piece of fish and a generous ladle of sauce. Garnish with toasted coconut, lime wedges and almonds if desired.