Cut the chicken breasts into small bite size pieces. Then in a large bowl mix together the yogurt, ginger garlic paste, salt, tumeric, chilli powder, garam masala powder, cumin powder and coriander powder.
Then add the mint leaves and the chicken to the marinade and mix well. Leave to marinade overnight or at least for 30 minutes.
Then heat up the ghee in a saucepan or frying pan and add in the cinnamon sticks, cloves and green and black cardamons and fry till fragrant. Then add in the onions and cook on a low/medium heat for about 10 minutes
You want to cook the onions slow and slow till they start turning golden brown. This process takes time and you can occasionally throw in some water, mix everything and cook the water out and then repeat this process till you get a nice brown onion jam like mixture.
Then add in the tomato puree along with some water, mix well and cover and cook for 6-7 minutes.
Once done you'll get a nice thick tomato sauce. Add the chicken into this and turn the heat up to high. Cover and cook for about 3 minutes.
Then add some water (depending on how much curry sauce you want) and mix well. Check that the chicken is cooked by cutting a piece down the middle, it should be white and firm but still juicy.
Turn off the heat and then finish with the coriander.
Serve with a nice hot roti or some steamed rice.