In general, the dynamic DNS (DDNS) settings in the router simply do the same job as the no-IP app that you're running on the 540c. Generally you just have to enter your username/password and domain name and the router handles all of the automatic IP address updating with the DDNS service. I've used it on Netgear and SpeedTouch routers without a problem.
Anyway, back to the original question. It sounds like the DDNS is working just fine and redirecting to your router, and also that MacHTTP is running just fine on your local network. Therefore, logic dictates that there must be a problem somewhere in between! What make of router are you using? There's usually an option called "port forwarding" which will achieve what you're trying to do. I'm not familiar with the "virtual server" settings, so I guess this could be the same thing...
The other thing to watch is that your machine has a fixed IP address assigned to it's MAC address on the router. If not, it may well take a different IP address when you restart and break your port forwarding set up. There's usually an option to permanently assign an IP to a specific MAC address in the router's control panel.