Rinse the beans. cover them with water and let soak overnite. Pour off liquid. Place in saucepan with 3.5 cups of stock. Saute onion and next five ingredients in the oil and add to the soup. Bring to a boil, cover, simmer 1.5 hours over very low heat. When the beans are just about tender enough, add the last six ingredients and simmer another 10 minutes. Puree some of beans to thicken. Serve topped with sour cream or yogurt.