Rinse and drain the beans. In an 8-quart saucepan with a lid, bring the beans and 7 cups of water to a boil for 2 minutes. Remove the pan from the heat, cover and let it sit for 1 hour. (The dish may be prepared in advance up to this point.).
To continue, add the chicken broth to the pan, cover and bring it to a boil. Reduce the heat and keep at a full simmer for approximately 3 hours, or until the beans are tender.
While the beans are cooking, start the sofrito by heating the oil in a large skillet. Add all the remaining ingredients. Cook over low heat, stirring occasionally, for 1 hour, until the mixture is very soft. Don't brown this, but slowly cook it down into a soft mush, adjusting the heat as needed. Add a tablespoon or two of water if the mixture starts to stick.
When the beans and sofrito are done, stir the sofrito into the beans. Scoop out 1 cup, and puree in a blender. Return the puree to the pan, cover, and, over low heat, cook an additional 30 minutes.