Place a pot or caldero over medium heat. Add oil and diced ham, if using. Sauté ham until golden brown.
Add sofrito, tomato sauce, and chicken bouillon. Cook until fragrant, about 2 minutes.
Add beans, water, seasonings and stir to combine.
Add bay leaf, onion, bell pepper, calabaza, cilantro sprigs and bring to a boil. Cover the pot and reduce heat to low. Simmer for about 15 minutes.
Remove bay leaf. Add the onion, bell pepper, calabaza and cilantro sprigs to a blender with some of the beans. Blend until smooth and add the puree back to the beans to thicken the broth.
Add crushed garlic, red wine vinegar, and sugar. Stir well.
Cover and allow to cook on low heat about 5-10 minutes more. Serve and enjoy!