In a large bowl or ziplock bag, combine the chicken pieces with all of the marinade ingredients, cover with plastic wrap, and let marinate for 30 minutes or overnight in the fridge.
Place a large skillet over medium-high heat. Add two tablespoons of olive oil. When hot, add chicken pieces in batches, ensuring not to overcrowd the pan. Cook until browned, for about 3-5 minutes per side. Set aside on a plate and cover with foil to keep it warm.
Melt the butter. Add the onion, garlic, and ginger, stir, and cook for 2 minutes.
Add the aromatics: cumin, garam masala, red chili powder, sugar, and paprika, and cook for 1 minute.
Transfer the mixture to the slow cooker. Add the chicken.
Add the tomato sauce and evaporated milk. Season with salt and pepper, and stir to combine.
Cook low for 6 to 7 hours or on high for 3-4 hours.
Thirty minutes nearly the end of the cooking time, open the lid and stir in the heavy cream.
Serve with rice garnished with cilantro.