They are kind of annoying to most people as they can be interchangeable in some situations, but the main difference is:
wa (written as は) is a topic marker usually used to talk about something listener and speaker already know about, essentially it is the topic of your sentence. It means "as for..."
ga is a subject marker, used to identify something unspecified to the listener or something new to the conversation.
"wa and "ga" also used in a longer sentence as you will obviously have a conflict if you try to use both of them at once in a sentence:
Watashi wa kimi ga mattaku kaze wo hiita no wo shiranakatta - I didn't know you really caught cold.
In other words...it indicates that the subjects of the subordinate and main clauses are different.
"ga" is also always used in certain cases (such as question words: nani, dare etc) for example:
Dare ga aitsu... - That guy, who is he?
"ga" is used with verbs conjugated as potential (being able to do something) as in Nihongo ga hanasemasu ka ? And sometimes when they can replace particle "wo".
It's worth repeating that は - topic marker and わ sentence ending for girls (and kansai men lolol) are obviously quite different, even though they are pronounced the same way.
For example a "tough guy" could say
iku zo! Let's go, while a girl could say Iku wa yo! - giving her speech softer tone
This post was edited by skystrike on Mar 7 2009 07:58pm