Heat 1 tablespoon coconut oil in a 4-5 quart pot or saute pan over medium until shimmering. Stir in the red onions and cook until transparent. Add the ginger and mix into the onions.
Scootch the onions to one side of the pan. Add another tablespoon of coconut oil, and spoon the spices on top of the oil: turmeric, cumin, coriander, paprika, and garam masala. Stir with the oil to create a paste, and let heat for a minute to bloom the spices.
Separate the cilantro leaves from the thicker stem ends and reserve. Finely chop the cilantro stems and add them, plus the minced garlic, to the pot and mix everything into the onions.
Increase the heat to medium-high and pour in the vegetable broth, tomatoes, and pearl barley. Stir to mix in the broth. Let the soup come to an active simmer. There should be blurpy bubbles. Then reduce heat to medium-low to maintain a gentle simmer.
If using whole red lentils, add those, too, at this time. Most likely, however, you'll have split red lentils (soft red in color, with one flat side), which need less cooking. Add split lentils after 20 minutes. The barley should be nearly tender. Cook for 10-15 minutes, checking the lentils often. You can cook them down to mush, if you'd like - I prefer them with a little tooth.
Reduce heat to low, and stir in the coconut milk and spinach. Let the soup rest over low until the spinach is bright green and gently wilted.
Ladle into bowls and garnish with chopped cilantro leaves, scallions and almonds (if using).