The big customer-visible feature is that every machine on their LAN can be globally reachable. For ISPs that absolutely cannot get enough IPv4 space to give their customers even a single globally-reachable IPv4 address, this would be the only way to get any global IP space. IME, edge routers that are intended for networking noobs to use often set up their firewalls so that they block inbound unsolicited IPv6 traffic, but (unlike with IPv4 NAT) there's the option of opening up multiple hosts to some or all inbound traffic.
Another feature that I find to be pretty stupid (but that some folks seem to really like) are IPv6 "privacy" addresses. Because each host usually is assigned an IPv6 address in a subnet that's 64 bits wide, most mainstream OS's have configured their IPv6 address autoconfigurator to set one stable, "permanent" address, and to set a parade of periodically changing "temporary" addresses. The OS is usually configured to prefer the permanent address when software asks for a socket to listen on (and sockets that handle replies to that listen socket), and those temporary addresses are preferred for sockets that initiate outbound traffic. The idea is that this is supposed to confuse tracking, but I'm very skeptical of its efficacy in the real world.
Finally, a customer can also usually get enough IP space to make globally-reachable subnets on their LAN. Depending how the ISP has configured things, a customer can get between four and 256 subnets. These subnets are handy to provide networks that provide globally-reachable IP addresses, but that can be easily logically isolated from the rest of the LAN by the router.