Heat oil in a dutch oven or large pot. Lower heat to medium and add onions and cook until slightly translucent, approx. 5-7 minutes. Add curry paste and sautee for 1 minute. Add potatoes and chopped tomato and and toss until all coated with the curry paste and cook over medium-high heat for 8 minutes (add small amounts of water if it starts to burn or stick to the bottom of the pan). Lower the heat to medium, add enough water to cover the potatoes and simmer with the lid slightly ajar. In the meantime, drain and clean the mackerel, remove the bones but you can keep the skin. When the potatoes are cooked half way through, add the mackerel to the pot and incorporate into the mixture taking care not to break up the pieces of the fish (this would drive my mother crazy when I did this). Cook potato and fish mixture over low-medium heat without the lid until the liquid has reduced by half (you want a thick sauce and not soup) and potatoes are fully cooked and soft. Garnish with chopped cilantro and serve over basmati rice or with roti.