Heat oil in an 8–qt. Dutch oven over medium-high heat or make sure to use a diffuser if using a tagine. Season chicken with salt and pepper; add to pot and cook, turning, until browned on both sides, 12 to 15 minutes. Transfer chicken to a plate.
Turn heat down to medium. Remove any extra fat that may have accumulated. You'll need about 2-3 tbsp. I try to use as little fat as possible as the chicken will continue to exude more fat as it cooks. Add onions to pot; saute until soft, 10 to 12 minutes. Add spices; cook for 2 minutes. Return chicken to pot with stock; boil.
If using a Dutch oven, heat oven to 350°. Bake chicken, covered, until tender, 35 to 40 minutes. If using a tagine, cover, and simmer on medium-low heat for same amount of time. Stir in olives, butter, parsley, cilantro, and lemons into pot, and cook for 6 minutes.
Serve with couscous, rice or flatbread.