Dynamically change shaders

How can you change shaders at runtime? So my object starts off with a diffuse shader, and I want it to become specular (for example). How would I do this? Also, is it a Unity Pro only feature (it might use texture.renderer or whatever the command is).

I think this is what you’re looking for: Material.shader.