Preheat the oven to 350 degrees F.
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 the heat to LOW, cover, and simmer for 20 minutes.
Meanwhile, combine the melted butter, olive oil, and garlic powder in a small dish. Place the bread cubes on a rimmed baking sheet and toss with the butter mixture and Parmesan cheese. Bake, stirring occasionally, for 7 to 10 minutes or until toasted.
Remove the pan from the heat and discard the thyme sprigs. Use an immersion blender to puree 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. Warm over LOW heat for a few minutes. Taste and season the soup with salt and pepper, as needed.
Top individual servings with the croutons, if desired.