Special equipment: 8 bamboo skewers
For the skewers: In a large mixing bowl, combine the chicken, yogurt, garlic, lemon juice and zest, cumin, curry powder, ginger and some salt and pepper. Mix well. Cover and refrigerate for a minimum of 30 minutes or preferably overnight.
Cut the bamboo skewers in half and soak for 15 to 20 minutes. Spear the chicken pieces onto the skewers and set aside.
For the dipping sauce: Heat the olive oil and butter together in a medium pot. When the butter starts to foam, add the chile flakes, cumin, curry powder, cardamom and cinnamon; cook until fragrant, 1 minute. Add the ginger and garlic and cook for another minute. Add the tomatoes, ketchup and sugar; simmer for 15 to 20 minutes, or longer if you have the time as this will really coax all the flavors out of the ingredients. Stir through the yogurt just before serving.
Heat a braai (grill) or grill pan. Grill the chicken skewers, turning from time to time, until cooked through and lightly charred, about 10 minutes.
Remove the skewers to a serving platter. Serve with the dipping sauce and a scattering of fresh cilantro.