If the domain is resolving to your Linode then your DNS is working properly, so the issue is specific to your virtual host configuration. (assuming the "it works" page you are seeing is in fact your own.)
I suppose the first thing I would check (since you indicated you already restarted apache) is that virtual hosts are in fact enabled. In /etc/apache2/apache2.conf, at the bottom I have "include sites-enabled".
Interestingly enough, based on a post I saw here recently, all my virtual host directives start with:
<VirtualHost *:80>
...instead of including the full IP address as shown in the tutorial. The Apache2 docs say to use *:80 for name-based virtual hosts, but docs and tutorial both indicate that adding the IP is a good practice if you plan to add IP addresses later and want the vhost to only listen on that IP; I don't know if this could relate to your problem or not.
Ensure your virtual host is in /etc/apache2/sites-enabled (and not just sites-available)...sometimes people overlook that step (a2ensite...). And that your servername and serveralias directives reflect the correct names. If you make any changes reload your apache config or restart the server.
The docs page may help:
http://httpd.apache.org/docs/current/vh ... based.html
Also, to rule out a browser cache, clear your cache or try a different browser that hasn't been used to access the site before. Usually developers turn caching off but you'd hate for it to be something so simple.
Beyond that, a headcold prevents me from sitting at my desk any more today, so I hope you find success.