In the bottom of a large cast iron skillet, heat the olive oil over medium heat. Add the onion and carrots and saute for 2-3 minutes, stirring occasionally. Add the potatoes and the chicken broth. Increase the heat and bring the mixture to a boil. Cook over medium high heat for 8-12 minutes, or until the potatoes are tender. Stir in the ham.
Meanwhile, in another medium sauce pan, melt the butter. Stir in the garlic and saute until fragrant. Whisk in the flour and cook until bubbly and thick. Slowly add the milk and half and half, whisking constantly. Heat for 3-4 minutes, whisking often, until mixture is thickened. Stir the milk mixture into the potato mixture. Stir in the frozen peas and heat until hot clear through. Season to taste with salt and pepper. Serve with cheese and chives, if desired.