For SharePoint 2007 deployment, I personally use WSP builder, works great as far as you use it properly.
However back in day,s I used to add a project output to solution and then generate CAB files, then convert CAB file into WSP by changing file's extension and use STSADM command for deployment.
In newer version of SharePoint (2010, 2013) & Visual studio (2010, 2012) it has been made really easy to create solutions project based on templates and then deploy them using a single button command. This seems to be a great relief for SharePoint developer however sometimes you will come across unusual errors while deployment of solutions specially for VS 2012 for SharePoint 2013.
For SharePoint 2010 and 2013, I personally use WSP file out of bin folder and add + deploy it using Power-Shell. If your servers are fast enough then you can add solution using PS and then deploy it through Central administration.
Deploying solutions, both from within Visual Studio and a Powershell
script seems really unreliable. For example, I have one package trying
to deploy about 3 .dlls and on average it's taking 3 attempts to work.
I do nothing in between each attempt besides clicking deploy!
Could be because your machine is slow and takes time to deploy solutions, also check what steps its going through while deploying in your deployment settings, if nothing suspicious then record and analyze ULS logs to figure out what's actually is wrong,
How to use ULS Viewer in SharePoint environment
It used to happen to me with STSADM deployment and I had to manually use this, as development machine was too slow.
stsadm -o execadmsvcjobs