John Reppy's Concurrent Programming in ML is one of the best technical books I've ever read. It takes you through a ground-up tour of all your favorite concurrent programming constructs starting with semaphores all the way to things like choice-based alternatives. I can't recommend this book enough to anyone who wants to learn both what ML-style languages and concurrent programming has to offer.
I used this book as a muse while learning F# and ported a good number of the code-examples along the way. Enjoy.