Sautée onions in oil on medium heat until soft and golden. Meanwhile, prep other ingredients as you occasionally stir the onions.
Add garlic and ginger. Stir about two minutes until fragrant, not too brown.
Immediately add pre-measured spices and sautée until fragrant.
Add opened coconut milk, tomato paste, carrots, and cauliflower. Add about 1-2 cups water or broth to thin liquid if needed. Use your judgement and think about whether you prefer a thicker or thinner curry. Keep in mind, vegetables will give off liquid.
Salt to taste and stir thoroughly. Start with a teaspoon, then adjust as you go. More ingredients to come...
Cover pot and bring to a gentle boil. Continue to cook over medium low heat. Stir occasionally to prevent sticking to the bottom of the pan. Add more liquid if needed, but careful not to overdo it.
Simmer until carrots are about half cooked, around 10 minutes. Add fish pieces, green beans and chopped chiles if using. Stir gently. Cover and return to a gentle simmer. Cook just until green beans are tender and still bright green, about 5 minutes. Fish should cook in this time as well. Try not to over stir at this point or the fish will fall apart and disintegrate as opposed to staying in nice bite size chunks.
Add the peas and kale, if using. Stir thoroughly, and remove pot from stove. Remember, the vegetables (and fish) will continue cooking in the heat of the curry when you take the pot off the stove.
Check seasoning one more time. Adjust as needed, again careful not to stir too vigorously.
Add chopped cilantro last, and gently stir in. Allow to sit before serving. Flavor improves overnight as spiced mellow and meld. You may set aside a little chopped cilantro for garnishing individual bowls.
This curry freezes well and gets better the next day and the next.