To make the marinade: In a stainless-steel bowl that will fit in the Instant Pot, combine the lemon juice, ginger, garlic, chili powder, garam masala, turmeric, and salt and stir to mix. Note: For stovetop method you can marinate in any mixing bowl.
Add the salmon to the marinade and turn to evenly coat with the spices. Set aside.
Instant Pot Method
Select the high Sauté setting and heat the oil. Add the onion and salt and sauté until the onion turns translucent about 5 minutes. Cover the pot with a glass lid (or another nonlocking lid that fits) to speed up the process. Add the ginger and garlic and sauté until aromatic, about 1 minute. Add the tomato puree, chile powder, turmeric, and garam masala. Press the Cancel button to turn off the Instant Pot. Pour in the water and stir well with a wooden spoon, nudging loose any browned bits from the pot bottom.
Place a tall steam rack in the pot, making sure all of its legs are resting firmly on the bottom. Place the bowl of salmon on the rack.
Secure the lid and set the Pressure Release to Sealing. Select the Pressure Cook or Manual setting and set the cooking time for 4 minutes at high pressure.
Perform a quick release by moving the Pressure Release to Venting. Press the Cancel button to turn off the Instant Pot. Open the pot and, wearing heat-resistant mitts, remove the bowl of salmon to a trivet and remove the rack.
Stir the heavy cream into the curry, then crush the fenugreek leaves with the palms of your hands to release the aromas and stir them in as well. Select the high Sauté setting and carefully add the salmon to the curry, turning it to evenly coat. Cook until the curry comes to a gentle boil and is heated through, 2 to 3 minutes. Press the Cancel button to turn off the Instant Pot. Garnish with cilantro and serve.
Stove Top Method
Heat the oil in a medium pot (4 or 5-quart). Add the onion and salt and sauté until the onion turns translucent about 5 minutes. Cover the pot to speed up the process.
Add the ginger and garlic and sauté until aromatic, about 1 minute. Add the tomato puree, chile powder, turmeric, and garam masala. Pour in the water and stir well. Cook covered on low heat for 10 minutes. Add more water if the sauce starts to stick to the pan.
Preheat the oven or air fryer.
Line the salmon on a baking tray or air fryer lined with parchment paper. Bake at 400 F for 8 minutes or Air Fry at 380 F for 8 minutes.
While the salmon is cooking, stir the heavy cream into the curry, then crush the fenugreek leaves with the palms of your hands to release the aromas and stir them in as well.
Add the salmon to the curry, turning once it to evenly coat. Cook until the curry comes to a gentle boil and is heated through, 2 to 3 minutes. Garnish with cilantro and serve.
Video
Notes
The best salmon to use is wild Pacific salmon if you can find it. Farmed salmon still has lots of Omega 3's but it also has more unhealthy saturated fats too.
The best place to buy salmon is at a fish market. If you don't live near a fish market, it's still healthy to buy frozen salmon, but try to buy wild-caught.
Pat dry the salmon before marinating to avoid extra liquids.
Deglaze the pot really well before adding the rack. Remove any browned bits from the onion and garlic. This will help the Instant Pot come to pressure and also prevent BURN warnings.