If you want to see an in-depth explanation of the differences in logging that Grant refers to head over to SSC.
Also, TRUNCATE uses a table lock rather than the row locks that DELETE uses.
You can also run into trouble on heaps with delete - pages remaining allocated and not returned for other objects to use, etc. This is slightly off the question's topic but is a consideration to make when choosing which statement to lean toward.