The short answer is that there is very little difference (perceived or actual) between these two general labels amongst those of us who make our living in this domain. However, as many folks have already said, some individuals or organizations apply very specific definitions to these general nouns...and that can sometimes cause a perceived or actual difference, especially to non-technical types.
Basically, if these two terms mean something dramatically different to you, then you either a) have been in a context where different specific definitions were applied to those labels or b) you get your technological savvy from reading InfoWeek (no offense intended to the lovely people at InfoWeek) and the occasional Dilbert.
I also personally tend to think that the term "programmer" was used earlier in history than the term "developer". For example, you always hear about "COBOL Programmers"...never "COBOL Developers". The term "developer" wasn't in wide use way back in the day. If you go look at job titles at technology organizations that were around in the beginning of computing (NASA, IBM, Unisys, Boeing) you either had "programmers" or "software engineers"...never "developers". And I bet if you troll said companies' sites right now you'd see very similarly titled results in their job opportunities.
coder? What is difference between a programmer and coder? – Starx Dec 7 '10 at 10:49