If you're just laying out the controls (that is, not dealing with graphic design issues like typography, colors, etc.), I recommend the the trusty paper+pencil combo. It shows people that it's not the final design, as opposed to badly spaced and randomly colored, real-looking controls that may look like a bad final design. It's also easy to draw and easy to discard - an advantage for any initial design.
If you can't draw straight lines well, then you can use dot graph paper. If you google for "dot graph paper" you'll find many sites that can produce dot graph paper PDFs you can print (I recommend making the dots as light and small as possible, btw).
If you already have the layout, and just want to make a realistic-looking mockup of the final product, then Fireworks would probably be my first choice. They have a nice GUI-controls symbol library, and bitmap/vector editing features that are similiar to Photoshop's and probably much better than Visio's (although I haven't used it much, so feel free to correct me). It also has some nice unique features like 9-slice-scaling (to draw round corners) and much better slicing tools than Photoshop's.