The limit for the file size is 50 MB. I would suggest leaving a small safety margin.
50 MB would be sufficient for a large number of leads depending on the the number of columns and amount of information.
Larger files can be split provided the column heads are copied to each new file.
SOAP API's syncMultipleLeads is a good alternative for large files. It can send up tp 1000 leads per API call.
http://developers.marketo.com/documentation/soap/syncmultipleleads/