Heat the oil in a large heavy pot over medium high heat. Add the onion and garlic, reduce heat to medium low, and cook 5-7 minutes, stirring occasionally.
Add the remaining ingredients, raise the heat to high, cover, and bring to a boil. Reduce heat to medium and simmer uncovered about 2 hours. Stir occassionally, soup will become very thick and creamy.
Remove the ham hock and chop as little or as much of the meat as desired and add into the soup.