My GUESS would be that you have a difference in what the two calendars think of as "a day."
IOW, there's a place in iCal where you can define what "a day" constitutes (ie when it starts and ends). On my iCal I have the start/stop times both set to midnight. By default, I believe the iOS calendar uses the same timetable.
If you're iOS device has "Time Zone support" turned on, that could conceivably cause the problem if it thinks it is in a different time zone.
Alternatively, if on your Mac you have your "day" defined differently than midnight to midnight, that could also cause the problem you're having. Check into those possibilities.