Drain the soaked peas, place them in a large pan with 6 cups (1440 ml) of water, and bring to a boil. Skim any froth from the surface, then reduce the heat to low, partially cover, and simmer for 45–60 minutes, or until the peas are tender.
Set aside in their cooking liquid.
While the peas are cooking, prepare the coconut paste. Roughly chop one of the onions and add it to a blender with the grated coconut and ¾ cup of water.
Blend until you have a very smooth paste, scraping down the sides as needed.
Finely chop the remaining two onions.
Heat the oil in a heavy-bottomed pan over medium-high heat.
Once hot, add the chopped onions and fry, stirring frequently, until they begin to brown at the edges.
Add the peeled and chopped tomatoes to the pan.
Continue to fry, breaking them down with your spoon, until they soften into a dark, thick paste and the oil begins to separate at the edges.
Tip in the coconut paste from the blender.
Stir well, scraping the bottom of the pan.
Add the chili powder, ground coriander, and turmeric.
Cook for 7–8 minutes over medium heat, stirring often, until the mixture is fragrant and lightly browned.
Pour in the cooked peas along with all their cooking liquid.
Stir in the salt and garam masala.
Bring the curry to a gentle simmer and cook, uncovered, for 15–20 minutes, allowing the flavors to meld and the gravy to thicken.
Stir occasionally.
Don't rush the process of frying the onions and tomatoes. Developing this deep, caramelized base is the secret to a flavorful curry.