Preheat oven to 375° F. Grease a 9x13-inch baking pan. Set aside.
Cook penne pasta according to package directions. Drain water.
Meanwhile, in a large saucepan, melt butter over medium heat. Stir in flour until smooth; gradually add milk. Bring to a boil. Cook and stir for 2 minutes or until thickened. Reduce heat then add both cheeses, garlic powder and pepper. Cook and stir until cheese is melted.
Add cooked penne to sauce mixture. Stir in ham and spinach.
Pour mixture into prepared baking pan. Bake, uncovered, 20 to 25 minutes or until heated through. Serve and enjoy!