Gather the ingredients for making homemade spice mix; garam masala, coriander, cumin, turmeric, and chili.
Mix the spices in a small bowl. This spice mix is used to make the marinade as well as the sauce.
Gather the ingredients for making the marinade; homemade spice mix, ginger and garlic paste, lemon juice, yogurt, and salt.
Mix the marinade ingredients in a small bowl.
Use either boneless and skinless chicken thighs or breasts. Cut the chicken into bite-size pieces.
In a bowl, combine chicken with marinade. Cover and let marinate in the fridge for 2 hrs or overnight.
Heat oil in a large frying pan/skillet over medium-high heat. When sizzling, add chicken pieces. (make sure not to crowd the pan.) Add only the chicken pieces without adding the marinade.
Fry until browned on each side.
Set aside the fried chicken while you prepare the sauce.
Gather the spices for making the sauce. Chopped onion, ginger, and garlic paste, homemade spice mix, black pepper, salt, crushed tomato or tomato puree, tomato juice, peanut butter, sugar, cream, and butter.
Heat the leftover oil after frying the chicken in the same pan. Fry the onions until slightly brown (about 3 minutes) while scraping up any browned bits stuck on the bottom of the pan. If you use a lot of oil for frying the chicken, remove some leftover oil before start making the sauce.
Add garlic and ginger and sauté for 1 minute until fragrant, while stirring occasionally.
Next, add the spice mix, ground pepper, and salt. Stir-fry for about 20 seconds until fragrant, while stirring occasionally.
Add crushed tomatoes and tomato juice. Let simmer for about 5 minutes, stirring occasionally until the sauce thickens and becomes a deep brown-red color.
Mix in the cream, sugar, and peanut butter.
Add the fried chicken and cook for an additional 2 to 3 minutes at low heat but don’t boil it. Check once or twice in between and give the curry a stir. If the gravy is too thick, add some water at this stage and give it a good stir.