The answer is to delete it. The question is then what to do with it after deleting so that one can find it again. This depends in part on the VCS.
Just deleting has the problem that you can't easily find something with
blame (git and svn both have a feature to show where something was added - and the Coding Horror blog post - Who Wrote This Crap?).
However, if you put a comment in its place it does show up in the annotations and in the current code.
One could (for example), replace the block of code with
/* code removed here that does frob()
* no longer needed because of XYZ requirement
* see f7f6023 for removed code
You could probably simplify that to one line or something so that it isn't quite the eyesore that I have it. The idea is to leave a 'folded corner of the page' in the code so that someone can find it again. Granted, don't do this for every block of code you take out. If you're just taking out a rather boring line, take it out and be done with it. No need to clutter the mind when reading the source (that is the spot for the commit message)
I'll point out that git has a slight advantage here of being able to specify the checksum of the parent more easily than other VCS can specify the location of the parent (it might be in a branch, it might not be)
If you are on Github or a similar in house repository, one could instead extract it out to a gist and reference that in the comment.
If you aren't in as enlightened of an a VCS system, one can move the idea of a gist into its own 'snippets' directory that one references for sizable chunks of functionality that you want to keep around.
The extraction method of the gist and the snippets has the advantage that one can search easily within this code. You shouldn't be using it only for deleted code, but rather the templates for how to do something. That something was deleted at some point in time isn't a reason not to save that snippit.
To this end, I'd suggest also looking that the question Best practices for sharing tiny snippets of code across projects for ideas on ways to best do that.
Another approach is to save the patch you did that removed the code in question in the issue tracking system itself. Saving the patch for the code remove also saves the code that was removed. Searching the issue tracking system then will also search removed code.