As Ilian Iliev mentioned, a good spam filter is more than capable of dealing with public email addresses. If your network admin or email host isn't competent enough to install a good spam filter, then there's always Gmail Hosted (Google Apps). We use this on all of our domains, and I recommend it to all my clients. It's fast, free, reliable, and integrates with other Google Apps (like Google Calendar). And if you have greater email needs, you can upgrade to their paid service.
Whether you put your email up or not should depend on whether you want to be directly contacted by email or via other means. If you're just another customer service rep in a large company, then it might make sense to just have a contact form that will direct emails to a customer support system and open a support ticket.
But if you're, say, a freelance web developer, a real estate agent, or a sales rep at a small company, then it makes sense to have your work email on your website. It looks more professional and also adds a personal touch as opposed to having an anonymous web form.
In most cases, for companies big or small, it's necessary to have at least one or two published e-mail addresses on your website. It could be something as simple as
email@example.com. It's sort of like having a phone/fax number or mailing address. You won't be taken seriously without one.