As Chris said, I have a monthly algorithm's challenge posted here:
http://www.programmingforums.org/thread15759.html
Submission deadline is May 31.
If you can get perfect on Senior and Advanced, then you should try:
http://train.usaco.org/
That is a website intended to train students for gold medals in the IOI World Finals. It gets very difficult, so it is only for the most experienced programmers.
Those are the two extremes, if you want something in between, you will have to show me your stuff (make a submission to the algorithms challenge).
There's all sorts of stuff from previous ACM competitions, to Programming-Challenges.com, to even some local university competitions I know of. Lots to study from for all skill levels. A lot also depends on the specific competition. The best practice is to do previous years from the contest you plan on writing.