Combine beans and water in a large Dutch oven; bring to a boil. Remove from heat; cover and let stand 1 hour. Add ham hocks; bring to a boil. Reduce heat. Cover; simmer 3 hours. Remove meat from ham hocks. Chop meat; add to soup. Stir in salt and pepper.
Sauté onion in butter until browned. Stir into soup. Ladle soup into serving bowls; serve warm.