In a large dutch oven or pot with a lid, cook chopped onion, apple and carrots over medium heat with a splash of oil (I use coconut or avocado) for about 5 minutes. Add in spices, butter, ginger, and garlic, cook for a couple more minutes.
Add in the sweet potatoes and lentils, stirring to combine.
Add the rest of ingredients and stir to combine. If you’re using chicken, add the whole pieces in now. Bring to a boil and then lower and cover (leaving the top cracked a bit).
Cook entire pot on low for about 40 minutes, chicken are cooked through.
Remove the chicken and shred using a fork.
This is where you’ll want to decide on texture. If you want a completely creamy soup, blend everything in a blender and add back into the pot. I wanted to keep some texture so I blend the whole soup, but only for a few seconds. You could also use an immersion blender as well.
Add the chicken back in and stir to combine. Adjust salt and pepper if needed.
Optional toppings: coconut milk, yogurt, cilantro, chopped cashews, and/or turmeric rice