Start a large pot of water on high heat. Once boiling, reduce to a medium-high heat and add penne to pot. Stir occasionally so pasta doesn't stick to the bottom of the pot.
While the pasta is boiling you're going to add the butter (or olive oil) and garlic in a large pan. Over medium heat, sweat out the garlic for 1-2 minutes or until lightly browned.
Now we are going to make a compound roux. Stir in the flour and cook for 1-2 minutes. Don't forget to stir often so you don't burn it.
Add the stock and milk, whisk until roux is incorporated, add spinach and cover. Bring mixture to a light boil, reduce to a simmer. Cook, stirring occationally, until your mixture thickens up nicely and your spinach is slightly wilted into the sauce.
Add fresh ground black pepper and parmesan cheese, stir until the cheese is melted and incorporated nicely.
Toss hot pasta with sauce and serve!