In saucepan, heat oil over moderately high heat until very hot but not smoking. Add onions and stir to coat with oil. Add ¼ cup of stock, reduce heat to low, cover, and cook for 5 minutes or until the onions are soft. Uncover, raise the heat to moderate, and continue to cook, stirring constantly, 3 minutes more or until the onions are golden.
Add the garlic, cumin, curry powder, cardamom, cinnamon, ginger, red pepper, sugar, remaining 2¾ cups of stock, tomato juice, brown basmati, lentils and carrots. Bring the liquid to a boil, then lower the heat, cover, and simmer for 30 minutes.
Uncover and stir the mixture. If it seems dry, add ¼ to ½ cup of water until the liquid just covers it. Continue to cook for 10 to 15 minutes or until the lentils are tender. Top each portion with ¼ cup of yogurt and a sprinkling of fresh herbs if desired. Serves 4.