Peel potatoes, if desired, and thinly slice (should have 6 cups). In a covered medium saucepan, partially cook potatoes in boiling, lightly salted water for 5 minutes; drain.
For sauce, in a medium saucepan, cook onion and garlic in hot oil over medium heat until tender but not brown. Stir in flour, salt, and pepper. Add milk all at once. Cook and stir over medium heat until thickened and bubbly. Remove from heat; stir in snipped sage.
Grease a 2-quart casserole. Layer half of the potatoes in casserole. Cover with half of the sauce. Sprinkle with half of the cheese. Repeat layering with the potatoes and sauce. For make ahead, cover and chill remaining cheese until needed. Cover with foil and chill for up to 24 hours.
To serve, preheat oven to 350 degrees F. Bake, covered, for 45 minutes. Uncover. Bake for 25 to 30 minutes more or until potatoes are just tender. Sprinkle with remaining cheese and walnuts over top. Let stand 10 minutes before serving. If desired, garnish with fresh sage leaves.