Preheat the oven to 350 degrees.
In a large soup pot or Dutch oven, melt the butter. Add the onion, carrot, celery, and garlic, and cook the vegetables over medium high heat, stirring, until softened, about 3 minutes. Add thyme sprigs and cook, stirring for another minute. Add the chicken broth and beans and bring to a boil. Reduce heat to low, cover and simmer for 20 minutes.
Meanwhile, combine the melted butter, olive oil, and garlic powder in a small dish. Place bread cubes on a rimmed baking sheet and toss with the butter mixture and Parmesan cheese. Bake for 7 to 10 minutes, stirring occasionally, until toasted.
Remove pan from the heat and discard the thyme sprigs. Use an immersion blender to process the soup until thickened but not totally smooth. Alternately, working in batches, transfer the soup to a blender or food processor and puree slightly, leaving some beans whole. Return the soup to the pot and stir in the diced ham and warm over low heat for a few minutes. Season the soup with salt and pepper to taste.
Top individual servings with the croutons.
Store leftovers in refrigerator. Thin with a little water or additional chicken broth, if necessary, for desired consistency when reheating.
Adapted from Food and Wine