Right now the iCal service basically only allows for read from any iCal server -- for instance, you can
So the closest thing you can do is have "home" and "away" calenders. So in this way you could have a Google calendar that you modify on Google, for instance, and an iCal calendar you modify on your Mac, and both Google Calendar and iCal see both of them, but they can only modify their own calendar. It works okay for adding new events, but obviously not great for modifying events. (If you forum search, this was discussed previously and you can get more details.)
This might change at some point with Leopard... iCal in Leopard has the ability to use served iCal calendars (i.e. read/write access to a calendar on a server), and Leopard Server will have an iCal server. So once Apple starts using a read/write iCal standard, it might get adopted elsewhere too....
I know this thread is really old, but as google still trolls it the above answers are no longer correct. You can enable read/write access from iCal to google calendar without any third party software. The below link is a google "how to" that will help.