Low and slow is the way to go with grilled cheese. Not so slow that the bread dehydrates, but slow enough that you can achieve a thick, even, golden brown crust on each side before the sandwich starts to burn. This means using a heavy pan. The easiest is to use a non-stick pan with an an aluminum core, which will distribute heat evenly and allows you to swirl your sandwich around, achieving more even cooking. A cast iron skillet that's been preheated for about 10 minutes over low/medium-low heat will work as well.
Make sure to use enough butter so that it really forms a good layer of contact with the bread. Butter does more than add fat and flavor—it provides a medium through which heat is distributed. If you don't use enough butter, you'll get spotty browning. Also, do not allow your butter to burn or brown. The browning should be slow browning of the proteins and sugars in the bread, not the milk solids in the butter.
Grill the bread on both sides.
The best method I've ever seen for making a perfect grilled cheese comes from Adam Kuban. His secret? Grill the bread on both sides. That's right. Grill two slices of bread in butter, flip'em over so that the browned sides are facing up, add your cheese, and close your sandwich so that the cheese is sandwiched between the browned surfaces. Not only will this get you better tasting bread infused with more butter, but it'll also give your cheese a head start on getting extra-melty.
I only ever use unsalted butter at home (it's more versatile), but I always felt there was something missing from my grilled cheese sandwiches until I realized that without the salt added from salted butter, that childhood flavor just wasn't there. Seasoning the cooked sandwich with a pinch of kosher salt solves that problem nicely.
The Method