Both have to do with right and wrong, but amoral means having no sense of either, like a fish, but the evil immoral describes someone who knows the difference, doesn't care, and says "mwah ha ha" while twirling a mustache.

If you are amoral, you're not a jerk, you just don't know that what you're doing is wrong. In the 1800s, Robert Louis Stevenson, author of Dr. Jekyll and Mr. Hyde (among other treasures), coined the word amoral to differentiate from immoral. Amoral is generally more descriptive, rather than judgmental:

In an age enamored of machines, life becomes amoral, without moral bearings, devoid of moral categories. (Edith Sizoo)

Amoral nature committed the crime "the man" could not. (Eye for Film)

Immoral is having no morality, being wicked or evil. If you are immoral, you know what society considers right and wrong, yet you do wrong anyway. It's a judgment, no doubt:

The bankers who took millions while destroying people's savings: greedy, selfish, and immoral. (Business Week)

At best, it is in bad taste and worse, flatly immoral. (Scientific American)

If you call someone immoral, you are saying that person knows better. If you call him amoral, you are saying that person does wrong but doesn't understand that it is wrong. It can be a fine line, other times it's clear: If a giant wave turns your boat over, that wave isn't being mean, it's amoral. If another boat rams into you and does the same thing, that is an immoral act, especially if the immoral captain laughs instead of helping you out of the water.