You should test your deployment process on private network or test network throughly before trying mainnet. I see you have tested yours on Ropsten, but I would suggest you to test preferably on Rinkeby because in Ropsten block gas limit is too low.
In my experience gasPrice setting in truffle.js is effective. I have successfully deployed my contracts using the following syntax:
port: 8545, // geth-mainnet
gasPrice: 2000000000, // 2 GWei
Make sure your account has enough funds not only for your smartcontract deployment, but also for deployment of truffle's Migration contract and calls to that contract.