From a design perspective it meant gradients, rounded corners, reflections, gloss.
And from a programming stance it means dynamic scripts (PHP, ASP, etc.), client-side scripting (Javascript, AJAX, etc.), user-friendly ways of presenting and collecting data, etc. Basically things that many websites have been doing for years now.
Being a website programmer, I consider a site to be "Web 2.0" when it uses a really helpful, user-friendly, and creative way of doing what the site is set out to do. A really simple example would be taking an image gallery and changing it from server-side scripting (clicking "next" to see the next image results in a page refresh) to client-side scripting (clicking "next" scrolls to the next image quickly and fluidly).
Of course, the number of annoying applications floating around today are a poor excuse for Web 2.0 in my mind.