I asked a question yesterday and the person who answered the questions went to great lengths to help me out. Is there any way that I could express appreciation for this besides just an upvote and the green tick.
If you have the reputation for it, you can create a bounty, starting at 50 reputation. Rewarding an existing answer is one of the preset reasons for creating a bounty. You can award the bounty manually to the existing answer you want to reward.
Some users link to their personal website or blog in their user profile. Maybe you can find something there: One of the moderators on this site has a link to his Amazon wish list on his profile, for example.
If you have neither the money nor the reputation to spare, you can post a comment, or, given contact information in the profile, send an email to the user to thank them beyond the check mark. For example, I received a few emails from users who wanted to express their thanks outside of the boundaries of the site.