Any of these are probably ok depending on what you are trying to do:
The following methods should probably be avoided as they have issues, are outdated or just plain wrong:
It could be argued that an input button should be used for anything that simply performs an operation on a page and is not intended to be a link. But then it becomes tricky to use an image for the button and a whole lot more css is going to be required. Same with a span, and it will not be added to the tab order.
Besides anchor tags are not called link tags, they create an anchor and the developer can wrap that around other objects like text and images. The default css and pointer also indicate that it is something that a user may want to click, with no further work from the developer required.