While tagine is traditionally made in the traditional Moroccan clay pot, a Dutch oven works well in a pinch.
Preheat the oven to 300ºF.
Heat 2 tablespoons of olive oil in a very large (12- to 13-inch) pot or Dutch oven, such as Le Creuset. Pat the lamb shanks dry with paper towels. In batches, add the lamb shanks to the pot and cook over medium heat for 3 minutes on each side, until they are nicely browned. Transfer to a plate and brown the remaining shanks, adding a little more oil, if necessary. Transfer all the shanks to the plate and set aside.
Add the onions and cook over medium-low heat for 5 minutes, stirring occasionally, adding more oil, if necessary. Add the garlic and ginger and cook for just 30 seconds. Add the chili powder, turmeric, cumin, cardamom, and cinnamon and cook for one minute. Stir in the tomatoes and their liquid, the chicken stock, brown sugar, lime, 1 tablespoon salt, and 1 teaspoon pepper. Add the potatoes, butternut squash, and sweet potatoes and bring to a boil. Place the lamb shanks in the pot, spooning some of the sauce and vegetables over the shanks. (They will not be completely submerged.) Cover the pot and bake for 3 hours, until the lamb shanks are very tender. Serve hot with Steamed Couscous.
Melt the butter in a large saucepan. Add the onions and cook over medium heat for 10 minutes, stirring occasionally, until tender but not browned. Add the chicken stock, 1 1/2 teaspoons salt, and 1/2 teaspoon pepper and bring to a full boil. Stir in the couscous, turn off the heat, cover, and allow to steam for 10 minutes. Fluff with a fork and serve hot.