• Build the new server
  • Give it a temporary IP address
  • Join it to the domain
  • Promote it to DC (you could need some adprep if this hasn't already been done)
  • Add required additional services (DNS, etc.)
  • Move FSMO roles if required
  • Change the IP address of the old DC to a temporary one
  • Reboot the old DC two times
  • Wait some time for replication (an hour should be more than enough)
  • Give the IP address of the old DC to the new DC
  • Reboot the new DC two times
  • Wait some time for replication (an hour should be more than enough)
  • Demote the old DC
  • Leave the old DC in service if there are more data or services on it, otherwise just shut it down.

"Best" is highly subjective, but you can re-use the same IP address after you demote the domain controller. You just need to make sure that the references to the old domain controller are gone from Active Directory before promoting a new domain controller at that IP address, and keep in mind that client computers may need to reboot (or at least refresh their network connection) if they have any cached/inactive sessions with the old domain controller.

And, no, it doesn't cause any problems. I've done it myself many, many times myself when I don't want to go through the hassle of updating manually-configured DNS server records on a whole bunch of computers.