The local nameservers you use for resolving addresses probably have the old MX record
cached.
You can check the TTL of the record from your home machine.
Code:
$ dig dotat.at mx
; <<>> DiG 9.3.2 <<>> dotat.at mx
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11934
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 4
;; QUESTION SECTION:
;dotat.at. IN MX
;; ANSWER SECTION:
dotat.at. 3600 IN MX 1 mx.cam.ac.uk.
;; ADDITIONAL SECTION:
mx.cam.ac.uk. 86400 IN A 131.111.8.148
mx.cam.ac.uk. 86400 IN A 131.111.8.149
mx.cam.ac.uk. 86400 IN A 131.111.8.146
mx.cam.ac.uk. 86400 IN A 131.111.8.147
;; Query time: 494 msec
;; SERVER: 205.133.7.2#53(205.133.7.2)
;; WHEN: Wed Sep 28 01:12:14 2011
;; MSG SIZE rcvd: 118
In this example, the TTL for the dotat.at MX record is 3600 seconds. This means that if the record changed, it would take an hour before the old record expired and I saw the new address.
There's not much you can do to retroactively reduce the TTL of an existing record. You could switch to a different nameserver on your home machine (this is defined in /etc/resolv.conf), but this would only solve the problem for you, not anyone else out there who may have cached the old record.
The moral is: when you are going to change DNS entries, plan ahead and reduce the TTL of the corresponding records a few days (or weeks) before, so that any cached entries will have time to expire.
Oh, you may also want to check your /etc/hosts file to make sure you haven't hard-coded the old address in there.