To make the salsa, mix all the ingredients together in a glass bowl. Add salt and freshly ground black pepper to taste and reserve, covered, in the refrigerator.
Place the beans and water in a soup pot over high heat and bring to a boil. Reduce to a simmer and cook, covered, until the beans are soft, about 1 1/2 hours. Remove from the heat.
In a large, heavy saucepan, heat the oil over medium heat. Cook the onions, salt and pepper together, stirring occasionally for about 10 minutes, until lightly browned. Add garlic and cook for a few minutes longer. Add the beans and their liquid, and the chicken stock. Bring to a boil, then reduce to a simmer and cook uncovered, stirring occasionally, for an additional 20 to 30 minutes.
Transfer the mixture to a blender and puree in batches until smooth. Keep warm in a pot over low heat, stirring frequently, until ready to serve. Serve in warm soup bowls with a spoonful of the salsa fresca and a dollop of sour cream.
c.1997, M.S. Milliken & S. Feniger, all rights reserved