Stir the yoghurt and tandoori masala powder together in a large bowl until thoroughly combined; add the chicken and toss to coat evenly. Marinate in refrigerator for 1 hour. Drain and discard any excess marinade.
Puree the onion, ginger and garlic with the water in a blender until it forms a smooth paste; set aside.
Heat 1 tablespoon oil in a large frying pan over medium heat.
Cook the chicken in the hot oil until lightly browned on all sides, about 5 minutes. Remove from pan and set aside. Heat the remaining 2 tablespoons in the pan.
Fry the onion paste in the hot oil until the moisture is mostly evaporated, about 3 minutes.
Sprinkle the garam masala and chilli powder over the mixture; cook 1 minute more. Reduce heat to medium-low, and cook another 5 minutes.
Return the chicken to the pan along with the cream and milk; bring to the boil.
Add the butter, fenugreek leaves and salt; reduce heat to low and simmer uncovered until the chicken pieces are no longer pink in the middle, 15 to 20 minutes.