In a blender (or using an immersion blender) blend the cashews and water until smooth. I find it helpful to do this in an 8-cup batter bowl, which gives me enough room to really blend the cashews with my immersion blender. A Vitamix would also be handy although a regular blender will work as well. Set aside. Don't wash your blender as you will be using it again soon.

In a large sauce pan or Dutch oven, heat the oil, and add the onion, celery and salt. Cook slowly, partially covered. Stir occasionally. When onions are soft and translucent, add the garlic and chipotle and cook until fragrant. Add remaining spices and continue to cook another minute or two.

Add tomatoes and cashew milk, and stir. Bring to a gentle simmer and cook until soup begins to thicken slightly, about 10 minutes. Blend using an immersion blender, or in batches in a blender (be very careful when blending hot liquids!), until soup is smooth. Return to pot, taste for seasoning, and add the lemon or lime juice if needed. Reheat gently, watching carefully as it's easy to scorch the bottom.