While the meanings are essentially identical, I believe there can be a very slight difference in emphasis between the two. 'At' can be used to refer more to the general location. 'On' is slightly more pinpoint and implies being directly on top of something.
"There was a car accident at the corner of 5th and James Street." (The listener would probably assume the cars are still in the roadway.)
"There was a car accident on the corner of 5th and James Street." (The listener would be more likely to imagine the accident occurred on the sidewalk where those streets intersect.)
Again, this is a very subtle difference, and you can often use the two prepositions pretty much interchangeably. As you can see from some of the posts above, some will disagree with this distinction.