Yes, bad pointer refs or going off the end of an array or buffer (the infamous "buffer overruns" that allow all the hacks into MS products).
Step through. If it only happens in release mode it could also be caused by using a variable without initializing it. If you can't step, add writes to a log file or messageboxes so you can narrow down where it's crashing.
If you can run your code on the emulator, do a BoundsChecker build and run that. Change jobs if they don't have BC (or something comparable) and won't buy it for you.