Preheat oven to 350°F. Grease a 13x9-inch baking dish.
Peel and slice the potatoes into ⅛ inch slices (or thinner if you can). Place in the baking dish.
Place the butter in a large skillet over medium heat. Add the onion and cook until soft, about 4–5 minutes.
Sprinkle the flour over the top, stir, and cook for 1 minute.
Whisk in the milk, salt, and pepper. Bring to a simmer and cook until thick, about 3–4 minutes.
Pour the milk mixture over the potatoes. Cover and place in the oven for 60 minutes.
Uncover and bake for an additional 30 minutes, or until the potatoes are tender.
Notes
Want to add cheese? I recommend cheddar, gruyere, or parmesan. If using cheddar or gruyere, layer 1 cup between the potatoes and put the remaining 1 cup on top. If using parmesan, use 1 cup total and divide it between the layers and on top.Want to add herbs? Whisk 2 teaspoons of chopped fresh thyme or 2 teaspoons chopped fresh rosemary into the milk sauce.Want to add ham? Add 1–2 cups of chopped ham with the potatoes as you layer them in the dish. Leftover ham works well, or ham steaks.Make ahead instructions: bake for 60 minutes covered, then let cool and refrigerate. When you're ready to serve them, bake for 30–40 minutes, or until tender and warmed through. You can do this 1–2 days in advance.Leftovers will keep 4–5 days in the fridge. Reheat in the microwave or in the oven.