Preheat a wok until smoking hot. Add 1 tablespoon of oil, followed by half of the chicken. Stir-fry until golden, about 3-4 minutes. Transfer to a plate and repeat with the remaining chicken, reheating the wok as needed between batches.
In the wok, heat the oil and butter. Add onion, ginger, and garlic. Cook and stir for 5 minutes until onion softens. Stir in cinnamon, paprika, ground coriander, cumin, garam masala, and chili powder for 30 seconds until fragrant. Add chicken and coat well.
Stir in the passata, stock, beans, and tomato. Lower the heat to medium and let it simmer for 10 minutes, or until the chicken is fully cooked.
Mix the cream, yogurt, and cornflour in a small bowl, then stir into the wok and simmer until the mixture thickens, about 2 minutes.
Garnish the curry with almonds, additional yogurt, fresh coriander, and serve with rice.