Heat the oil in a soup pot. Add the onion and sauté over medium-low heat until translucent. Add the garlic and continue to sauté until both are golden.
Add the lentils, celery, garlic, and water. Bring to a rapid simmer, then lower the heat. Cover and simmer gently for 10 minutes.
Add the potatoes, tomatoes, and curry powder, turmeric, and nutmeg, and simmer until the potatoes are about half done, about 10 to 15 minutes.
Add the cauliflower pieces. At this point, you may need to add more water. Add a cup at a time, enough so that there's room for the ingredients to simmer, but let the soup remain dense.
Simmer until the lentils and vegetables are tender, about 20 minutes longer.
Stir in the spinach or arugula and optional cilantro or parsley. Adjust the consistency with more water once again as needed, then season with salt and pepper. If you'd like to give the soup a bit of heat, add hot pepper flakes (or pass them around when serving the soup). Simmer over very low heat for 5 minutes longer.
Serve at once, or if time allows, let stand off the heat for an hour or so, then heat through before serving.