I could state most of my reasons, but I think other people have stated them far more convincingly then I have. So I'll just refer you to a couple of interesting threads/articles.
In short the reason for using a module for this as the same as the reason for using a module for anything else. The module is (usually) extremely well tested and highly developed. It's been used by large numbers of different people so must of the bugs have been worked out and the interface is usually well suited for the task at hand.