Make the curry paste: combine the chopped onion, garlic, 1 teaspoon ground ginger, 1/2 teaspoon ground turmeric, 1 teaspoon ground cardamom, 1 teaspoon garam masala, and 1 teaspoon coarse sea salt in a food processor and pulse until smooth.
Heat 1/2 tablespoon of the olive oil in a large saucepan over high heat. Season the cubed chicken with salt and pepper, add to the pan, and cook 3–5 minutes, stirring occasionally, until golden. Remove the chicken and set aside.
Add the remaining 1/2 tablespoon olive oil to the same saucepan, then add the prepared curry paste. Cook, stirring, for about 2 minutes until fragrant.
Stir in the tomato paste, almond milk, 1/2 teaspoon ground cinnamon, and 1 teaspoon chili powder until combined.
Return the browned chicken to the saucepan and stir to coat with the sauce.
Reduce heat to medium-low and simmer, uncovered, until the sauce thickens and the chicken is cooked through, about 30 minutes.
Serve the curry over white rice and top with cilantro if using.