Place all the ingredients in the section "tandoori chicken" in a bowl, mix well, cover and allow to marinate for at least eight hours or overnight.
Preheat the oven to 375F.
Line a tray with foil or non-stick paper and position a rack on top.
Arrange the chicken on the rack, at least an inch apart, and roast for 30 to 40 minutes depending on the size of each piece.
Take the chicken out of the oven and allow to cool slightly. Reserve the pan juices.
Braise the chicken in the sauce
Melt the butter in a pan.
Over low heat, sweat the chopped onion and, when the moisture has evaporated, continue cooking until browned along the edges. This takes about 10 minutes with occasional stirring.
Meanwhile, debone the chicken and chop the meat into bite-sized pieces.
Add the chopped tomatoes, cream and pan juices to the onion in the pan and bring to a simmer.
Stir in the chicken and allow to simmer (don't boil because the cream will curdle!) for about five minutes.
Taste the sauce. Add salt and sugar, as needed.
Transfer the butter chicken to a serving bowl and top with cilantro.