Let me start out by saying, if you've got a Mac, you should consider your options for a smart phone very carefully. I've only got one phone, and I've been frustrated with my Blackberry ever since I gave up my work BES connection. If you've got a phone connected to a some sort of a data plan, how could you accept anything less than fully-connected, fully-synchronized? I know I can't.
Probably the best, most complete option is BES on a full corporate-style mail server. You could go procure a copy of Exchange and BES (only $500 for 5 used BES licenses) and let 'er rip. Of course, if that's too complex, rich or bandwidth-hogging or all three for your tastes, you could try a hosted Exchange solution with BES. This will probably run you about $25-$35 per month for the server side. Your carrier, if it is like mine, will want to ding you about $15/month over the personal Blackberry plan to connect to a BES server that you're paying for. So, you're in $40 to $50. That's pretty steep when coupled with your probably $65 phone bill for voice, data and Blackberry Internet Service (BIS).
Which brings me to BIS. BIS should be a full-featured BES replacement for those of us outside of an enterprise, right? Wrong. With GMail or Google Apps, it doesn't seem to get the state right between the device and the IMAP connection I use for my desktop mail. It doesn't even purge deleted items. GMail may have a hand in that one, but you can't tell anything about what BIS and GMail are doing because BIS provides very few visible configuration options for much of anything, other than to import an Outlook or Outlook Express email profile which does me very little good on my Mac. But it gets the job done, sort of. I have a hard time believing I pay for this service. It's all TCP/IP and data, right?
Open source is often right where you need it, and in solving this problem, it's very close. Funambol has most of the pieces you need -- SyncML servers to hold your data, free and hosted at MyFunambol.com and ScheduleWorld.com, an open-source client for Blackberry to push your data to the SyncML server, and early client for iPhone and Mac which will sync your contacts with a SyncML server. Maybe on a good day, but I was unsuccessful. Even after busting out the debugger to see what was happening on the client, I still got server failures with both services as I was trying to get my data up to the server. Next stop on that road would have been running the server locally, debugging the issues and fixing the code. I can't fault this group for having a not-quite-working system, but I'm looking for something that works now, rather than a project.
Enter BusySync. BusySync is a calendar publish/subscribe facility subscribe to your main Google Calendar and publish an iCal calendar to Google calendars, as well as provide ad-hoc calendar sharing. BusySync works smoothly, effortlessly and is perfect if all you need is to synchronize your calendar to a Google calendar. Unfortunately, for reasons that I won't explain here, you can't sync the Entourage calendar with Google calendar in a way that you get two-way syncing through Google to a Blackberry. If you use iCal, this scenario works great.
If you want to use Entourage and have it sync to your primary Google calendar, there is another Mac to Google synchronization option available. It's called Spanning Sync and it works similarly to BusySync, but it allows you to map the calendars you want to synchronize. With Spanning Sync, I can synchronize my Entourage calendar, or the iCal version of my Entourage calendar, with my primary Google calendar. Google calendar sync picks up that calendar and synchronizes it with my Blackberry and the calendar problem is solved!
For the moment, I'll put up with cabling up to sync my contacts...until I decide that I want a single, cohesive solution that I can host, and I'll either pony up the cash for BES or pony up the code for funambol.
I think I'll go the funambol route.