Notwithstanding that there is a similar question here - Secret to takeaway curry with a lot of good answers, let me try to address your specific request, whilst mainly maintaining the ingredient list you already have...
- Leave the chicken out until near the end. That will allow you to cook your sauce for a lot longer - 2, 3, even 4 hours. Every hour will improve it, so long as you don't burn it... low as it will go, or even invest in a slow cooker or one of those flat metal simmer rings that spread the heat & slow the process [$£€ 2.50 on eBay]
While the rest of the curry is cooking, you could marinate the chicken in something to add a bit of interest. It won't really affect the final flavour a whole lot but will blend it into the dish better at the end.
Kashmiri mirch would be your prime - it's not expensive but not easy to just buy at the local supermarket. Paprika [sweet or hot, not smoked] would be a fair substitute, with cayenne if you want a little heat back in it. A little garlic, crushed or paste, frozen or even powder [many curry takeaways use only powder] & some oil to bind it.
Use twice as many onions - you didn't say how many you use, but there's no such thing as too much onion in a curry masala [sauce base]. It ought to be the bulk of your sauce.
Use more oil - your standard takeaway uses a whole lot more oil than you would dream of, & very little water.
Sweat [don't brown] the onions down a long way [20 mins, not 5] before you add the garlic & ginger. Some people puree the onion; this adds a new guesswork factor, because if you puree them when they're too raw they will be bitter, & pureeing scalding hot onion isn't fun so you'd have to wait for it all to cool.
It's 'easier' to skip this step & make it up in cooking time later. I have a little 'trick' I use for this. I chop most of my onion very finely - this will pretty much liquefy over the cook time & just become part of the sauce... but I also rough-chop half an onion which will stay whole & visible in the final dish - best of both worlds.
Add your dry spices & allow them to fry in a little; keep it all moving & don't burn them but don't rush to add your liquids. You'll smell the change within a few mins.
Then do the same for your tomato puree. Pre-frying it helps thicken the sauce & also removes any bitter edge the puree may have.
I can see your reasoning for the whole can of tomatoes - it saves having half a can going off in the fridge - but you're going to need to get rid of most of the water from that over your cooking time. You can either try to boil it off at the end, right before the chicken goes in, keeping stirring like there's no tomorrow so you don't burn anything; or leave your saucepan lid off for the first hour & your heat up slightly. If you get the balance right on that you can stir it every half hour & it won't stick.
Don't dry it out completely, you've still at least an hour of simmering on very low, with the lid back on.
Half an hour before you're due to serve it, add the chicken & bring it back to temperature rapidly, then simmer. If you use bite-sized pieces rather than whole breast, reduce this time to 5 mins. You want the chicken cooked safely, but not like shoe-leather;) The longer you cook off-the bone, skinless chicken breast, the tougher it gets.
Note the chicken doesn't need frying at all for this type of dish.
5 minutes before you serve, if budget will allow, a little garam masala will add a cheap but interesting aromatic edge.
If it's not hot/spicy enough, you can add cayenne at pretty much any point, even right at the end. It's amazing how little cooking in it needs to just add a bit of punch.
Save the yoghurt for a side dish.
Potential additional expenditure
Kashmiri mirch or paprika. Cayenne you should have anyway; it's your 'magic add heat to anything' powder, with very little actual flavour.
Powdered garlic instead of fresh - will help thicken & also taste like 'takeaway' rather than home-cooked.