Gather all ingredients.
Combine beans, ham hock, onion, garlic, and water in a large stockpot.
Season with chili powder, salt, and pepper.
Bring to a boil, and cook for 2 minutes. Remove from the heat, cover, and let stand for 1 hour.
After 1 hour, return the pot to the stovetop and return to a boil. Reduce the heat to medium-low and simmer until flavors have blended and broth has thickened, at least 3 hours, or up to 6 hours.
During the last 15 minutes of simmering, transfer ham hock to a cutting board. Let sit until cool enough to handle, 5 to 10 minutes, then pull meat from the bone.
Return meat to the stockpot and discard the bone. Adjust seasonings to taste.
