20% is the best amount to put down, because it helps you avoid mortgage insurance.
BUT, if you don't have that much cash, the best option is to put down as little as possible, and here is why.
Each $1000 you finance on a 30 year fixed rate mortgage (for the sake of argument, say it is 6%APR and $150k financed) will only change your payment by about $5-7 per month.
If the minimum bank requirement is 5%, put down 5%. If you put down 10%, it is true that you will lower your monthly payment, but only by $30-40 per month.
Conversely, if you were to pay that much extra each month, you would have an extra $7 or 8k in your pocket. And it would take you more than 10 years to pay out that much with the increased monthly payment. It all depends on your comfort level I suppose. But if it were me, I would rather have that cash in hand for earning interest or doing repairs, or emergency funds, instead of giving it to the bank.