Rinse and sort the beans, getting rid of any broken pieces. Place in a stockpot or Dutch oven and cover with 1-inch of water. Bring to a boil. Place lid on pot and remove from heat. Let sit 1 hour.
Meanwhile, in a large pot or Dutch oven, heat bacon fat over medium heat.
Add onion, celery, and carrots and saute until soft, about 3 to 5 minutes.
Add ham, ham hocks, chicken broth, water, bay leaves, garlic powder, thyme, black pepper, and red pepper flakes.
Bring to a boil and reduce heat to maintain a simmer. Simmer for 1 hour.
Once beans have been sitting for an hour, drain them.
Add beans, butter, and Cajun or Creole seasoning to the chicken broth mixture after it has simmered for 1 hour. Continue to simmer for 60 to 90 minutes. If liquid level gets too low (ie not all the beans are submerged), add more water.
Remove ham hocks. Let cool slightly and then remove any meat from the bone, chop it up and return it to the pot.
Serve as is for a side dish or serve over rice with a side of cornbread for a main dish.