Heat 1 tablespoon oil in a large skillet over medium heat. Cook the chicken in the hot oil until lightly browned on all sides, about 5 minutes. Remove from skillet and set aside. Heat the remaining 2 tablespoons in the skillet. Fry the onion paste in the hot oil until the moisture is mostly evaporated, about 3 minutes. Sprinkle the garam masala and chili powder over the mixture; cook 1 minute more. Pour the tomato sauce into the mixture, reduce heat to medium-low, and cook another 5 minutes. Return the chicken to the pan along with the half and half; bring to a 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.
Puree the onion, ginger, and garlic with the water in a blender until it forms a smooth paste; set aside.
Stir the yogurt 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.