I have been doing some user interface design for the software company 2wav. They are an exceptional group of programmers with an uncommon appreciation for design. Excellent user interface design is more than a superficial application of nice colors and pretty icons; it is focused, unified, and easy to understand.
Good design starts with understanding the goals of the project, the desires of the users, and staying true to the overall purpose. We have all experienced an interface created by geeks without much thought as to how it will be used by a non-technical person. Do you remember VCRs? How about your old digital watch? Fortunately, design thinking has been spreading through the tech world.
Just like programming, design is a process. You start without knowing what the final form will take. You respond to client feedback and expect a series of iterations before arriving at the solution. Ultimately, you are solving a problem in the most elegant way possible. If you are successful, the result is more than nice looking, it is beautiful.