In a large bowl, combine the yogurt, lemon juice, turmeric, garam masala, curry powder, and cumin in a bowl and mix well. Add your chicken to the bowl and coat the chicken in the marinade.
Cover and put in the fridge for 1 hour, up to 12 hours.
In a large pan, melt your butter and oil over medium heat. Add your onions and cook until they are soft. Add your galic, ginger paste and cook until onions are golden brown.
Add your tomatoes at this point and cook for an additional 7-10 minutes.
Add your chicken, along with the marinade to the pan and cook for 5 minutes then add your chicken stock and bring to a boil. Cover and heat on low for about 30 minutes.
Add the heavy cream and tomato paste and simmer for an additional 5 minutes.