You could try using svk as your local client instead of svn. Svk is a pseudo-distributed version control system using svn repositories.
You would use svk to set up a mirror of the repository, synchronise it, and you can diff to your heart's content, as many revisions back as you like and it is all local.
You could also make a branch of the mirrored repository and use that as your checkout, then your commits are also a local-only operation, and when you're ready with a batch of commits you push them to the remote svn repository (and pull other user's changed back, similar to an svn update command).
Two caveats:
- Be prepared to use the command line. There is no TortoiseSVK or other GUI to my knowledge.
- I've only used svk on linux. If you're using windows, I'm not sure how good the client is.
Other than that, I second using bazaar, mercurial or git as others have suggested. Bazaar is probably the easiest to use, and has a TortoiseBzr GUI which a collegue of mine says is pretty solid.
Git is the hardest to use. It is like the swiss-army knife that is almost wider than it is long, with all the little gadgets and do-dads in it and hanging off it, with the springs so tight that you occasionally slice a finger open trying to prise a blade out.