Originally Posted by Fat Dark Fallen Angel
I personally thinks that Stealth Rock is better. In such fast-paced metagame, you don't have time to setup three layers of Spikes. Stealth Rock on other hand only wastes one turn, and affects ALL pokémon bar the obvious exception of Magic Guard users.
Stealth Rock is needed to break Focus Sashes, Sturdies and Multiscales, and get some handy KOs that you would need to waste another turn attacking to get. Spikes is also amazing as it can get even more KOs when combined with Stealth Rock, and is more useful against grounded threats if you manage to setup three layers. However, you rarely have time to get these three layers.
Spikes is easier to get when you are using a defensive Pokémon to do this. However, defensive Pokémon aren't suitable for offensive teams unless as supporters, and stall is uncommon.
In short: On most teams, Stealth Rock is essential, Spikes is optional and Toxic Spikes is awful.
I find that spikes/stealth rock in tandem are fantastic, especially against genesect, who hates residual damage. Stealth rock can be used by a wide variety of things, so it's easy to slip on a team. Spikes is more difficult, but I find Ferrothorn to be a reliable spiker who can get fit on offensive and defensive teams alike. He's a fantastic supporter and hits pretty hard with that Gyro Ball and Power Whip. Deoxys-D is a good spiker, too, for offensive teams, since he can function as a suicide lead. Forretress isn't bad, either, since he can also spin.
Even offensive teams have to be wary of hazards and residual damage, and have to consider a spinner...