The other answers have some great ideas for how to deepen the flavor of your curry! However, even if you are not interested in significantly changing your process, I think we can solve your immediate problem:
my curry is too sour
Let's take a look at the acidic ingredients you are using. I see three:
Since you only use yogurt ...
I'm a bit of a heretic when it comes to curries, but I think they turn out great.
In addition to using stock instead of water, I suggest you try beef stock instead of chicken (unless cows are holy to you), or possibly mushroom stock.
I also improve the taste of my curries by adding a small amount of soy sauce; like one of the commenters says, it's probably ...