Combine the chicken with the ingredients to marinate. Mix well and set aside.
Place the onion, garlic, and ginger in a food processor and chop very finely. Make sure the garlic and ginger is properly minced. If you'd like, you can chop the onion first and then the garlic and ginger together.
Turn Instant Pot on sauté mode. Once hot, add ghee, oil and chopped onion mixture.
Sauté for about 8-10 minutes, until the onions are golden. Meanwhile, blend the tomatoes in the food processor. If needed, deglaze the pot with 1-2 tablespoons of water to help brown the onions evenly.
Add the blended tomatoes, tomato paste (if using), Serrano pepper, spices, salt, and sugar and sauté for 6-7 minutes. Once the tomatoes have broken down well and most of the moisture has evaporated, add the water and marinated chicken. Mix well to coat the chicken and close the pressure cooker.
Cancel sauté and pressure-cook on high for 8 minutes. Let the pressure release naturally for 5-7 minutes. Then, manually release any remaining pressure.
Open the lid and select Sauté - More. Once the butter chicken is to desired consistency, cancel Sauté and add in the butter, heavy whipping cream, and dried fenugreek (if using). Taste and adjust salt and sugar. Garnish with garam masala and cilantro. Serve with naan or rice.
Notes
Note 1: You can substitute 1 8-oz can tomato sauce alone or along with 1 blended tomato. 8 oz tomato purée also works well. If you do so, you may need to reduce the salt depending on its sodium content.