WordPress Development Site

What is the best solution to build a WordPress website on a development server, so when the site is ready we can easily move the site to the Live server?

Would we have to reinstall/configure WordPress, Plugins, move DB tables/content, images, etc…?

Is it better to develop on the server that the live site will be on? Like in a folder off the root… domain.com/wordpress

How do you handle this type of situation? Any advice is more appreciated! Thanks!