I haven't got the reputation yet to comment to on Dave Kaye's response so I've had to respond directly. It is very much worth noting his reply in comparison with Rachuru's brilliant answer.
In an interpretation of modern phrases, the layman's explanation could/should be;
- Wireframes are "the design"
- Mockups are "rendered demos"
The actual terminology originates from the 80's. Back then, you didn't have the computing power to produce real-time imagery but you could watch "wireframes" of graphics floating around on screen in real-time. A proper "demo" needed overnight rendering etc.
In these times, a "wireframe" represents a skeleton "design" and, with a good iterative design process, people should be generating mockups from the wireframe, getting feedback and passing that back to improve the wireframe design.
Unfortunately, nowadays, there's lots of software available to customers that allow them to design mockups that aren't using anything that is directly usable by programmers. Frequently, their designs are built upon by others so the mockup gets augmented privately rather than being brought back to programmers to factor into grand designs.
I think that's effectively what Dave was being a little more polite about mentioning :-)