Heat the oven to 450 degrees. Peel the beets and carrots and cut them into 1/2-inch pieces. Spread them on a rimmed baking sheet, toss them with 2 tablespoons of the olive oil and sprinkle them generously with salt. Roast the vegetables until they're soft (the carrots should brown a little), turning them once or twice with a spatula; this should take about 45 minutes.
Put the stock or water in a medium saucepan, add the ginger and parsley stems and bring to a boil. Turn off the heat and let the stock infuse while the beets and carrots cook.
Put the remaining olive oil in a large saucepan and set it over medium heat. Add the onion and cook, stirring often, until softened and lightly caramelized, about 5 minutes. Add the garlic, cook for another minute, and then add the beets and carrots.
Remove the ginger and parsley stems from the stock and add the stock to the pot with the vegetables. Bring to boil and lower the heat so the soup is simmering. Cook for 5 minutes.
Puree the soup until smooth, adding a little water if it seems thick. Add salt and pepper to taste, and refrigerate for at least 2 hours. (If you prefer hot soup, just keep going with the directions from here.)
In a small bowl, combine the creme fraiche or sour cream, lime zest, chopped parsley and a generous pinch of salt. Serve the soup in individual bowls with a dollop of the creme fraiche.