Here's the difference:
Goth kids wear black (or sometimes white/gray), are nihilist, often wear make-up/dye their hair, are necrophiliac (often very into vampire and zombie mythology), and are androgynous.
Punk kids are the rebels. Mostly anarchists but will include any group of youths with strong political ideals (Communists and Neonazi Skinheads for example). Most wear colorful pseudo-military clothes. A lot like goths, though unlike Goths they don't wear only black.
Emo kids wear tight jeans, have long black (dyed or antural) anime-ish hair that covers one side of their face or both the eyes. They do not wear only black, though they do have a preference of wearing black shoes (sneakers I think). They also do not wear anything outrageous usually and thus do not own a 'fashion' asides from the hairstyle.
Emo is short for emotional. It defines someone who is emotional, shy, angsty, and depressed, often suicidally so.
Eheh. Here's a good way to tell goths, punks, and emos apart. Goths have blood flowing from their mouths, punks from their noses, while emos have blood flowing from their wrists.
.... ok that was disturbing. *ahem*
Goths will glance your way uninterestedly, Punks will glare at you, while Emos look away. Best of all, Goths are mostly apathetic, Punks confrontational, while Emos are the teenage 'I'm the victim of the world' types.
Also all three are music genres. Gothic music is haunting often creepy music a la Evanescence. Punk is fast and loud often with lyrics that are anti-establishment. Green Day is Pop Punk (Grunge). Emo is used too much today to really define what it sounds like, most bands labeled emo do not accept it anyway and prefered to be called punk rock. But it's usually associated with strong displays of emotion (i.e. crying/shouting angrily midsong). Emocore is slower, and quieter than the emopunk/screamo music that is prevalent nowadays. I really really HATE emopunk/screamo though. Its whining tone grates on my ears.
It's more mentality anyway rather than fashion. The so called emos you run into today are mostly poseurs going with what's popular anyway. A true emo is the kid who hide away at lunchtime, write dark poems under some trees, while eating the lunch his mom made for him.
It also isn't surprising that most closeted gay teens are emos.