In a large soup pot, melt fat and then add diced onion and saute for approximately 2-3 minutes until translucent.
Next, add diced garlic to the soup pot and continue to saute for another minute or two until fragrant.
Add chili powder, if using, to the soup pot and stir well to coat onions and garlic.
Add tomatoes to the soup pot and stir well.
Add soaked beans to the soup pot and stir well.
Place ham hock in the center of the bean mixture in the soup pot and add 8 cups of water. Bring the mixture to a boil, then turn down to a medium simmer and put lid on soup pot.
Allow soup to simmer for 1 1/2 - 2 hours until beans are cooked and ham is tender.
Remove ham hock from the soup pot and remove ham from bone. Return shredded ham to the soup pot.
Taste for seasonings, and add salt, pepper, lemon zest and juice, or vinegar.
Serve immediately or store in refrigerator for up to 3-4 days. Alternatively, soup may be frozen for up to 4-6 months.