In a Dutch oven, heat the olive oil and butter over medium heat until the butter melts. Add the onion, carrots, and celery; saute until tender, about 7 minutes. Stir in the garlic, flour, thyme, salt, and pepper until blended. Cook, stirring, for 1 minute.
Gradually add the broth, bay leaf, and potatoes.
Bring to a boil; then reduce the heat so that the broth is at a gentle boil. Cook until the potatoes are fork-tender, about 10-15 minutes, stirring regularly.
Reduce the heat to low; add the ham and half-and-half. Stir just until warmed through (do not boil). Discard the bay leaf. Season with additional salt and pepper, if necessary. Ladle into bowls, garnish with fresh herbs, and serve!