For the marinade: In a resealable plastic bag, mix together the cream, lime juice, cardamom, cumin, turmeric, black pepper and salt. Add the chicken and toss to coat. Marinate in the refrigerator for a minimum of 2 hours and up to 4 hours.
For the curry: Heat the oil in a large skillet over medium heat. Add the onions, jalapenos and garlic and cook until soft, 8 to 10 minutes. Add the cumin, ginger and salt and cook until fragrant, 1 minute. Add the potatoes, tomatoes, cinnamon, tomato paste and chicken stock; stir to combine. Raise the heat to high and bring the mixture to a boil, then lower the heat and simmer for 5 minutes. Add the chicken and all of the marinade. Cook, covered, until the potatoes are easily pierced, 20 to 25 minutes.
Stir in the coconut milk and cook until the sauce has thickened slightly, another 10 minutes. Sprinkle with cilantro. Taste for salt and pepper and add more as needed.