Put the butter (or ghee) and oil and a large lidded frying pan and heat over medium heat. Add the cumin seeds and cinnamon sticks and cook a minute or so, then add the chopped onions. Cook 10-12 minutes, stirring periodically, until golden brown.
Grind the ginger, garlic, green chilis and a pinch of salt in a mortar and pestle until paste-like.
Stir the paste into the onion mixture and cook 2 minutes, then stir in the tomatoes and cook another few minutes. Stir in the tomato paste, ground cumin, turmeric and 1/2 teaspoon of salt.
Slowly stir the yogurt into the curry and cook until it starts to bubble. Add the chicken pieces and cook, covered, for 30 minutes or so, until the chicken is cooked through.
Add the ground almonds and garam masala and cook another 5 minutes.