Use native IPv6 as provided by your network, if possible.
Using a point-to-point tunnel is the next best option if you can't get
native IPv6.
If point-to-point tunneling is too much effort, there are still Teredo and
6to4 that you could use. These techniques are less reliable and will get lower
precedence routing, so everything that can be reached over IPv4 will not use
IPv6. However, it's still better than not having any IPv6 at all.
Getting IPv6 on your network
If your internet access provider supports IPv6 (ask them!), then all you
need is an IPv6 capable router and your ISP's instructions to set it up.
If you don't get IPv6 from your ISP, all you need is a tunnel, a routed
subnet, and a daemon for router advertisemets (like radvd). The router that
does the IPv6 tunneling and routing can be a different device than the main
IPv4 router, so you can simply add one to your existing network if your current
router doesn't do it.
Getting IPv6 on an internet server
You'll want native IPv6 on a production server. Request configuration
instructions from your ISP. If they still don't offer IPv6 connectivity, perhaps
now is a good time to move.
Let every service listen on IPv6 as well as IPv4, before you apply any DNS
changes. Use a port scanner to verify that the same ports are open on IPv6 and
IPv4. Some software does not support IPv6. Replace it, or find a way to proxy.
Add AAAA records for every hostname. Note: you may not want to add AAAA
records if your machine still provides services that are only reachable over
IPv4. A good work-around is to use a different hostname for each service.