In the oil, in a large Dutch oven, set over medium heat, melt the butter or ghee and when it is hot and shimmering, add the cumin seeds and cinnamon sticks.
Cook for a minute or two, stirring often, to intensify their flavors.
Add the onions; cook, stirring occasionally, until they are golden; approximately 15 to 20 minutes.
Meanwhile, put the ginger, garlic and peppers into a mortar and pestle with a pinch of salt; smash them together into a coarse paste; you can also do this on a cutting board with a knife.
Add the paste to the onions and cook for 2 minutes or so; then pour in the tomatoes and stir.
Allow to cook for an additional 2 to 3 minutes; add the tomato paste, ground cumin, ground turmeric and another pinch of salt; stir to combine.
Add the yogurt slowly to the mixture, using a wooden spoon to whisk it into the sauce.
It may be quite thick; when it begins to bubble, add the chicken.
Lower the heat, put the lid on the Dutch oven; allow the curry to cook gently for 30 minutes or until the chicken is cooked through.
Add the almonds and the garam masala, along with a pinch of cayenne; cook for 5 minutes more.
Serve with basmati rice or naan and the additional yogurt.