As a developer with long-time C++ experience I always felt quite comfortable with multi-threaded development. However, very often I discover that this comfortness is not shared by all developers. I lost count on how often I had to investigate some strange deadlock or race condition.
Fortunately, Vance Morrison of the MSDN Magazine published an interesting article named "What every dev must know about multithreaded apps". It is rather lenghty, but gives a nice indepth look of the advantages and disadvantages of multithreading.