Step 1Cook the onions in the olive oil in a nonstick skillet over medium-low heat, adding a sprinkle of salt and stirring occasionally, until they are soft and golden-brown, 30 to 45 minutes.
Step 2Scrub and trim the potatoes, dice them, put them in a soup pot with the water and 1 teaspoon of salt and bring the water to a simmer.
Step 3Meanwhile, wash the beet greens and spinach thoroughly, trim away the tough stems and coarsely chop the leaves. When the water in the pot is simmering, add the beet greens, spinach, green onions and cilantro. The greens will look like an enormous pile at first but will soon shrink down into the liquid. When the onions are caramelized, add them to the soup as well.
Step 4Simmer the soup until all the vegetables are very soft, at least half an hour. Add the broth and puree the soup. Process just until the texture is velvety smooth but no longer, as over-processing can make potatoes gummy.
Step 5Return the soup to the pot, bring it back to just under a simmer and season it with additional salt, pepper to taste, the cayenne and at least the lemon juice, adding more if you like. (Remember to add the seasonings a little at a time.) Stir well, wait a moment, then taste. If the soup is too thick, it can be diluted with some additional vegetable broth or a bit of water.
Step 6Garnish each serving with crumbled queso fresco, feta cheese or garlic croutons.