Chicken Tikka Masala tastes a bit off
You aren't getting the 'Indian restaurant' taste because you aren't using Indian restaurant techniques. Most Indian restaurant curries are based on a 'gravy' made with copious amounts of garlic, onions and ginger, stewed for several hours. They also use large amounts of ghee to add richness (and a boatload of calories), and finally they use marinaded chicken, cooked in a tandoor (a very hot, dry oven) which gives a unique flavour.

It is simply not possible to replicate the flavours at home without using the same ingredients or similar techniques. It is not something you can knock up in half an hour.

If you'd like to have a go at replicating a restaurant curry, try reading The Curry Secret by Kris Dhillion.