From the man pages it appears both do basically the same thing, why have both running on the system at the same time? From the wording in the man pages it looks like cron will repeatedly run programs at scheduled times while atd may run them only once, is this why?
The look like they are the same but there are some things at is a lot better at. Some differences:
Have a look at these examples and imagine how you'd do these with cron: