Pre-heat the oven to 400°F (200°C). Use half the butter to grease a 2Qt (2L) baking or gratin dish. Line a rimmed baking sheet with foil or parchment paper.
Peel the potatoes and cut them in half lengthways. Cut the potato halves crosswise into 1/8" (3mm) slices. Try and make the slices as even as possible so the potatoes cook evenly. (If you have a mandolin now is the time to dig it out and dust it off.) Add the potatoes, onion, garlic, cream, milk and salt to a medium sized pot. The milk/cream mixture should just barely cover the potatoes. Bring the pot to a boil over medium high fire. Watch that it doesn't boil over. When it begins to boil, lower the heat and boil gently until the potatoes are just barely cooked - no more than 5 minutes. Test with the point of a sharp knife; it should pierce the potato with a slight resistance. Remove the potatoes from the heat.
With a slotted spoon transfer half the potatoes and onion to the prepared dish. Sprinkle with half the pepper and half of each of the cheeses. Transfer the remaining potatoes and onion to the dish and sprinkle with the remaining pepper and cheeses. Pour the cream mixture over the potatoes to cover. You may not need quite all of the cream. Don't over fill the dish or it will bubble over and make a mess.
Cover the dish tightly with foil and set it on the lined baking sheet. (This is to catch any drips and make clean up easier.) Bake for 30 minutes. Carefully remove and discard the foil. Dot the potatoes with the remaining Tbs of butter (and additional cheese if desired). Return the dish to the oven and bake, uncovered, an additional 15 minutes until the top is lightly browned and bubbling.
Let the potatoes cool 15 minutes before serving.