Preheat oven to 325 degrees F. Place ham in roasting pan with 2 cups of water. Cover and bake for about 20 minutes per pound, or bake according to package directions. The ham is done when a meat thermometer reads 130-140 degrees F. Once cooked, reserve stock (liquid) and remove ham meat from the bone. Cut or shred ham into small pieces.
Melt butter in a stockpot over medium heat. Add onion, celery, and carrots; cook for 10-15 minutes until carrots start to tenderize. Add garlic and cook another minute. Stir in flour until combined with butter and vegetables.
Add reserved ham stock to pot. Add chicken stock to equate to 6 cups of total liquid. So, if you had 2 cups of ham stock, you only need to add 4 cups of chicken stock. Bring to a light boil, stirring frequently, about 5-10 minutes.
Add heavy cream, ham, beans, tomatoes, salt, pepper, cumin, nutmeg, and paprika to pot; stir to combine. Simmer over medium-low heat for 30 minutes; stirring occasionally.
If desired, serve with crackers, shredded cheese, and French bread or cornbread. Enjoy!