I have always classified it this way. If you just write code to a specification, you are a programmer. If you consider the business case and do business analysis you are a developer. The world needs both.
Programmers are best at creating tight code and prefer an environment that supports good coding practices. (C#, JAVA, fortran) Usually found in large installed applications such as word processors, spreadsheets, web servers and operating systems. Usually have a Computer Science degree. Programmers can be instrumental in keeping developers to adhere to good practices.
Developers are often looking for the quickest way to complete the job and will prefer a language that supports quick development. (VB, HTML, Javascript, scripting) Usually found in business applications such as Web hosted store fronts, departmental applications, data collection and presentation. Usually have a MIS, IT or liberal arts degree. While developers appreciate a programmers attention to detail, they also know that business requirements may require an alternative or pre-packaged approach.
There are also many others, such as Graphic Designers and Business Analysts that do a fair share of coding. Many of these coders are quite good.
Also remember that these classifications are not absolute. There is an entire continuum between programmer and developer and most people fall in between. Many developers use C# and JAVA and good programmers use VB and HTML.
I would suggest that you do not dwell on labels, but use an appropriate one. If you just want to code, you can call yourself a programmer. If you like to be involved with the user, you can call yourself a developer. If you specialize in intuitive and eye pleasing user interfaces, you can call yourself a Graphic designer.