In a large bowl, combine the chicken pieces, yogurt, curry powder, cinnamon, and salt. Mix until the chicken is well-coated. Cover the bowl and let it marinate for at least 30 minutes (or up to 2 hours for deeper flavor) in the refrigerator.
Rinse the basmati rice under cold water until the water runs clear. Cook the rice in boiling water for about 8-10 minutes, until it’s three-fourths of the way cooked (slightly "al dente"). Drain and set aside.
In your large pot or Dutch oven, melt the butter over medium heat. Add the chopped onion and sauté until golden brown, about 5-7 minutes. Stir in the minced garlic and ginger, cooking for an additional minute until fragrant.
Add the marinated chicken to the pot, stirring well to combine with the onions and spices. Cook for about 5-7 minutes, until the chicken is no longer pink and cooked through.
Pour in the chicken broth and add the raisins. Bring the mixture to a simmer, allowing the flavors to meld together for about 5 minutes.
Gently fold in the partially cooked basmati rice, ensuring it’s evenly distributed across the chicken mixture. Reduce the heat to low, cover the pot with a tight-fitting lid, and let it cook for another 15-20 minutes.
Once the rice is tender and fluffy, remove the pot from heat. Fluff the biryani gently with a fork, and stir in the fresh chopped cilantro. Serve warm, garnished with additional cilantro and sliced almonds for an extra crunch.