NAT are and firewall two different functions, but it's fairly easy to confuse the two. You obviously did you homework and you are correct that just enabling NAT without any additional firewall function will block all incoming connections by default. I'll try to explain a bit further, so read on if you're interested.
NAT is meant to share a single public IP address between multiple machines. As side effects, it breaks all servers (listening ports) on devices behind the NAT, and as jdrom17 said, it masks your internal machines since only your public IP is visible. For NAT to work, the router has to keep track of all connections in its memory. For example, if someone is browsing the web at a computer while another family member is playing an online game through XBOX Live, the router has to know where to send the incoming information (so it sends the web pages to the computer, and the data from your online game to the XBOX).
So whenever a device behind a NAT establishes a connection, the router plays a trick and pretends that it is the one making the connection. The server on the other side will always think the connection comes from the router itself. The router then relays the traffic to the client that established the connection. This scenario makes it impossible to host, say, a web server on a NATed machine, because since the connection isn't being initiated by the client and the router isn't running the web server itself, the router has no clue where to send an incoming request and just drops the packet.
That's why NAT, by default, will not allow any incoming connections even without a firewall on. Now, to solve this, routers have an option to act as a server and fake being the client on your local network. So when web request comes in, it will accept the connection and then connect to your server to relay the information. This time, it's your server that will always think that the client is your router instead of the other way around (there are ugly routing gimmicks to get around this). Typically, for this to work, you'll have to configure virtual servers or a DMZ on a router. On home routers, the DMZ term usually means a single machine where to send all new incoming connections by default (ports 1-65535).
That's why, unless you explicitly configure a DMZ, the router will not route any incoming connections, even with the firewall off. One thing you have to be careful about is that it only works for incoming connections. If you get infected by a trojan, you computer will gleefully become part of a spam botnet without any trouble, even with NAT.
Now, as for the firewall... Since NAT already requires routers to keep track of all connections (stateful routing), it's rather easy to offer a firewall on the routers. Firewalls work even without NAT. You won't see this often on home routers, since it requires some routing knowledge to setup, but most home routers support it. For this to work, your ISP needs to route to you a block of public IPs. For example, Teksavvy (my ISP) will give you a block of 6 IPs for $10 per month. With this setup, you don't need NAT, but enabling the firewall is still a good idea. You can still choose to block incoming connections by default, but unlike NAT, you don't have to. It also makes is possible to enable some protocols that don't work well with NAT. This second option is much better from a networking standpoint, but since IPv4 space is restricted and NAT is fairly dummy-proof, ISPs always recommend NAT.
Hope my ramblings were somewhat understandable.