Coat the bottom of a large pot with the oil and place it over medium heat. Give the oil a minute to heat up, then add the onion and celery. Sweat the vegetables for about 10 minutes, stirring occasionally, until they've softened up a bit.
Stir in the garlic, cumin, paprika, cinnamon, ginger, turmeric, black pepper, and cayenne pepper. Sauté the mixture for about a minute, stirring constantly, until it becomes very fragrant.
Stir in the broth, lentils, and chickpeas. Raise the heat and bring the soup to a boil, then lower the heat and let the soup simmer for about 25 minutes, until the lentils are tender. Add some hot water if the soup becomes too thick at any point while cooking.
Stir the cold water and flour together in a small container, then add it to the soup. Stir in the tomatoes. Continue simmering the soup for 5 minutes.
Stir in the vermicelli, then continue simmering the soup until the noodles are tender, about three minutes.
Remove the pot from heat and stir in the parsley and cilantro. Season the soup with salt and pepper to taste.
Ladle into bowls and serve with lemon wedges on the side.