Rinse and sort though black beans, discarding any that are shriveled or discolored. Place beans in a large stockpot. Cover beans with water and refrigerate to soak overnight. Drain beans and return to stockpot. Add stock and heat to boiling.
Meanwhile, heat olive oil over medium-high heat in a large skillet. Add onion, carrot, celery and garlic and saute until tender, approximately 5 minutes. Add to stockpot along with oregano, thyme, bay leaf and cayenne pepper. Cover stockpot and reduce heat to simmer for 3 to 4 hours.
Transfer soup to blender or food processor and puree to desired thickness.(I don't puree the soup, I just leave it like I would for beans). Just before serving add lime juice and garnish with a sprig of fresh cilantro, if desired. Add salt and pepper to taste and serve.