Heat a couple of tablespoons of olive oil in your Dutch oven or pot of choice over medium heat.
Pat chicken thighs dry and season with salt and pepper. Place in pot and cook until golden brown on each side, about 3-5 minutes per side. So as not to overcrowd the chicken while it cooks, you may need to work in batches. Transfer the chicken to a plate.
Add another tablespoon or so of olive oil. Add the onion and celery and cook over medium heat, stirring often, until softened.
Add the garlic and ginger and cook for another minute or until fragrant.
Add tomato paste, garam masala and crushed red pepper and cook for a minute or two, stirring constantly.
Add the chicken broth and bring to a boil.
Gently drop the tomatoes into the pot. Allow to blanch for 30-60 seconds or until the skin of the tomatoes crack. Remove from the boiling broth and transfer to an ice bath. Once cool, peel the skins and add back to the pot.
Add the chicken thighs, preserved lemon and coconut milk. Partially cover and allow to simmer for about an hour, stirring occasionally.
While the stew simmers, prepare the yogurt sauce by adding the zest of one lemon and the juice of half a lemon to the yogurt. Mix thoroughly. Keep refrigerated until ready to serve.
Remove the chicken thighs and shred. Add the shredded chicken back to the pot. Usually, the tomatoes will naturally break apart as the stew simmers, but sometimes I like to help them along by smooshing them with the back of my wooden spoon at this time.
Add the potatoes, butternut squash and carrots to the pot. Season to taste with salt and pepper. Partially cover and allow to cook until fork-tender, about 35-45 minutes.
Serve in a bowl over rice or with bread or naan. Top with the yogurt sauce and fresh herbs. Serve with lemon slices if desired and enjoy!