What version of the client are you using? Version 0.4.0 is the current version, and upgrading to that solved a lot of problems that I had with Bitcoin on linux.
Also, you could try starting the client with the "--rescan" command, which should throw out a bunch of its saved information and rescan the entire blockchain from disk. I believe the client can sometimes get out of sync, and just needs a rescan to clear it up. I don't know how to actually do this on a Mac... if you can open it from a command line, you only need to add "--rescan" to the end of the call.