Many third-party remote access applications like LogMeIn deliberately operate in a way that's meant to get around firewalls, dynamic IP addresses, corporate proxies, and other things that might generally make it difficult for someone to access their home computer.
Most consumer-grade firewalls only block (at least, by default) incoming connections - that is, attempts by outside computers to initiate connections to computers on your home network. NAT also prevents this by its very nature. Unless you've told the router what to do with an incoming connection (e.g.: with port forwarding rules) it doesn't know where to send it and therefore will drop it.
Most of the time you're using the Internet, your connections are outbound - i.e.: your system is the one initiating a request to an external server, not the other way around. Consumer-grade firewalls happily allow this by default, because that's the most user-friendly way to behave. (Otherwise, you'd have to bother yourself with creating your own whitelists just to do things like visit Google or get to your e-mail. This is something your average Internet user doesn't want to be bothered with, and generally doesn't properly know how to do anyway.) The NAT router can handle outbound requests automatically because can make note of which internal system made the request so that it will properly forward the reply when it comes.
Dynamic IP addressing is another problem you normally have to work around if you want to remote to your home computer. Typically, your computer is configured to automatically receive an IP address from your home network. The network will normally just give your computer whatever IP is the first available within its range. This means that, whenever you reboot your computer or move between networks, the computer is quite likely to change its IP address on the internal network. This will break whatever port forwarding you've set up at the router. You can eliminate this by setting your computer to use a static IP address or setting the DHCP server (usually your home router) to always give your computer the same address.
However, this only resolves the issue on the side of the internal home network - you still have to worry about your external IP address. Your external IP address is assigned by your Internet Service Provider. Typically, consumer-grade Internet connections do not come with static IP addresses. So, it is very possible - even likely - that the IP address you have today won't be the same one you'll have tomorrow. Unless you have some way of tracking this externally (e.g.: with a Dynamic DNS service) this could mean that you won't know your house's correct IP address when you try to access your home computer from the outside.
Corporate proxies can also create difficulties for employees who want to use services across the Internet which are generally not meant (for business purposes) to traverse beyond the organization's network perimeter. The usual way to get around this is to tunnel unapproved traffic through an approved (or, at least, not blacklisted) protocol like HTTP. Even better is to use an encrypted protocol, like HTTPS, so that it is harder (though not impossible) for the proxy to inspect and trigger a block on your traffic.
LogMeIn uses one simple mechanism to get around all the problems you might generally encounter on the most networks: Your home computer maintains a constant connection with the LogMeIn servers over HTTPS. Since this connection is outbound, encrypted, and using a port and protocol that is normal for authorized business traffic, it is very unlikely that it will be blocked by firewalls or proxies. The outbound nature of the connection also makes it easy for NAT routers to make sure the return traffic gets back to your home computer no matter what the local IP address is. Also, since your computer is in constant communication with LogMeIn's servers, this allows LogMeIn to always know what your house's external IP is.