It's worth doing some reading on, i'll give you the gist:
ipv6 addresses are 64 bits of network address followed by 64 bits of host address. The network address is called the "prefix".
First off in ipv6, routers advertise themselves on the network and advertise what prefixes they route for. So as soon as you plug in a device to an ipv6 network it asks "what routers are out there" and the routers say "here I am, I route for prefix XXX and you should use address YYY for DNS". Then periodically the routers just send out beacons "I'm still here, routing for prefix XXX, please use YYY for DNS"
Typically the next step is called "SLAAC" for stateless address autoconfiguration which means that a machine that hears a prefix advertised generates a host portion using their MAC address and then tacks it onto the prefix... and voila they're on the network. So there's no DHCP involved. There's also "privacy" addresses where essentially you just use a random number generator to generate a host address. Finally there is a DHCP system but it's questionable whether it's a good idea. Typically machines have MULTIPLE ipv6 addresses and this is totally normal in ipv6.
Of course there is an ipv6 DHCP method for handing out prefixes as well, and this is usually used to get a block of prefixes (called prefix delegation). So typically your router asks "hello I want a prefix block of length /56" and then the ISP says "here's the first 56 bits that we own, do what you want with the remaining 8 bits" and so your router can then assign 1 network prefix to each of its internal LAN subnets, up to 256 of them, or you might just ask for a few /64 prefixes, one for each subnet you have. For larger organizations they can get /48 delegated, and for small ISPs they'll typically get a /32 prefix. Big guys like Google or ATT typically have something like /28 or even a /24 or some such thing
Huge advantages include that it's trivial to get a machine on an ipv6 network, just plug it in. Also there is no NAT at all, so you get a public prefix, and then your machines on your network get public ipv6 addresses. This means that your router/firewall needs to have a policy in place to prevent inbound traffic, but it also means that if you want to let people directly connect to your machines, it's possible whereas with NAT forget it. That solves huge headaches for all sorts of things. This is quite honestly the big deal about ipv6: that everyone gets as many public addresses as they need. This enables network connections between any two devices without "second class citizens" behind NAT who need to jump through hoops using special techniques to accept inbound connections.
EDIT: in particular, the vagaries of NAT pretty much destroy the reliability of IP telephones, whereas with ipv6 and a simple firewall rule, you can allow inbound telephone connections to any telephone on your LAN thereby ensuring that if a SIP connection is interrupted and a SIP proxy tries to re-open the connection, it will be able to rather than dropping the call. My calls used to drop all the time, and now that I run ipv6 with a softphone that supports it... my calls stay solid all the time.