In a large skillet add a tablepoon or 2 of vegetable oil and turn heat to medium high. Add chopped onion and sweat the onion until just translucent.
Add tomatoes and cashews and saute for 1 minute more.
Add water, ginger paste, garlic paste, chili powder, amchoor, salt and sugar.
Cover and simmer for 15-20 minutes. This will cook out the raw flavor of the tomatoes and create a mushy puree.
Remove from heat. Pour tomato mixture into a blender and blend until completely pureed. (Note- the cashews are pureed to help thicken and make a creamier sauce).
Return sauce to the original pot by pouring through a fine mesh sieve, using a plastic spatula to press through the solids. Discard the solids (seeds and skin).
Turn stove back to medium heat and bring sauce back to a simmer.
Melt in the butter and stir in the cream. Feel free to add water if the texture of your sauce is too thick or you need more volume.. don't worry if you add a little too much, you can always reduce it back down (I added about 3/4 cup additional water to mine, but it will depend on how much water you've lost as you've cooked it).
Finally, stir in the garam masala and the fenugreek powder.
Stir in the cooked chicken.
Garnish optionally with kasuri methi (also known as dried fenugreek leaves), crushed cashews, and a drizzle of cream.
Serve immediately with basmati rice or naan.