Whisk together marinade ingredients and massage into chicken. Marinate in airtight container for at least 3 hours or overnight.
Heat olive oil in a large cast iron skillet over high heat (I turned the knob on my stove just above medium high). Add chicken and pan fry on each side until browned/charred, then set aside. The chicken should not be cooked through at this point.
Turn heat down to medium high. Add ghee to cast iron skillet, then sauté onion until fragrant, scraping browned bits from the bottom of the skillet. Add ginger, garlic, arrowroot flour, and all spices except salt. Continue to sauté for another minute.
Add tomato puree and salt to the skillet, continuing to scrape any browned bits from the bottom. Lower heat to medium-low and simmer for 5-10 minutes.
Add coconut milk to skillet and puree sauce using a hand blender, if desired. Return chicken to the skillet, cover in sauce, and continue to simmer for 10-15 minutes or until chicken is cooked through.
Remove chicken and cut it into bite sized chunks before serving.
Serve over basmati rice, cauliflower rice, or with naan bread. Garnish with fresh cilantro.