01 -
Place navy beans in a large bowl and cover with three times their volume of cold water. Soak overnight in a cool place.
02 -
Drain beans and place in a large pot or Dutch oven. Add 10 cups water and ham. Bring to a simmer over medium heat, then reduce to low and cook until beans are tender, about 1 hour 30 minutes.
03 -
Transfer ham to a plate to cool slightly. Remove bone if present and dice meat. Return diced ham to the pot.
04 -
Place potato in a saucepan, cover with water, and season with salt. Boil over medium-high heat, then reduce heat and simmer until fork-tender, 20–25 minutes. Drain and mash with milk until smooth.
05 -
Stir mashed potato into the bean and ham mixture until combined.
06 -
In a skillet over medium heat, melt butter. Add onion, celery, garlic, and parsley; cook until vegetables are translucent, 7–10 minutes.
07 -
Add sautéed vegetables to soup. Reduce heat to low and cook for 1 hour, adding up to 2 cups water if needed for desired consistency. Season with salt and pepper.