I would have guessed that slang had a slightly obscene (or at least coarse) nature and colloquialism was more an "informal convention of speech" without the negative connotation, but I can't find anything to back that assumption up.
Slang is generally very informal language used a specific segment of speakers of a language. An example of slang (that I just found on the internet) is the word "Bandini", which is supposedly a word meaning "nonsense" used in Los Angeles.
Colloquial speech refers to everyday speech that people use informally. Colloquial speech can include a great deal of slang, or no slang at all. Colloquial speech is different from the standard of a language in that it has features like contractions (in English "can't" instead of "cannot"), more general words ("thing", "stuff", "dude"), etc.