Sort through the beans and rinse them. In a saucepan, bring a quart of water to a boil, then simmer the beans with the garlic, half of the onion, cloves, and carrots for about two hours. If you need to make beef stock, you can do that while the beans are simmering.
The best way to puree the beans is with a food mill, but a food processor also works. Use some of the beef stock to puree so the bean mixture doesn't get dry.
Combine the bean puree with the beef stock and all the other ingredients except the remaining onions and the cilantro. Bring to a simmer for about a half hour at least. You can cook it longer to thicken it to a texture you like, and it will continue to taste better.
Adjust seasonings with salt and Tabasco and serve with chopped onions and cilantro. A little dollop of sour cream on top is also nice.