I recently made Sanjeev Kapoor's butter chicken and found the taste too acidic/tomatoey. It was tasty but it lacked the authentic butter chicken flavor. This was surprising to me considering the amount of spices called for. I followed the recipe nearly to a tee.  My leading theories are:   did not cook tomatoes long enough (cooked about 15 min)  did not cook tomato puree long enough (cooked about 15 min)  too many tomatoes (8-10, followed by 2 cups tomato puree)   Any thoughts? 
I used to always have this problem cooking tomato-based curries. To balance out tomato-ness, you either need something bland like dal, something with body and sweetness like onion (I also usually add a little palm jaggery or coconut sugar to wet curries and other sauces that have tomatoes), or some oily fatty creamy rich stuff (or all of them :D). I watched the video and I noticed that the tomatoes he used were really dry, and the tomato puree he used was thin (not very concentrated), so if you have juicy tomatoes and concentrated tomato puree you should probably use less. If you want to make the dish lower in fatty ingredients like butter, oil, yogurt and cream, you need to reduce the quantity of tomatoes to avoid it tasting too acidic. 