This is a very common problem. Upgrading you iphone firmware if it's not current may solve this problem. Or try changing your address for the account from email@example.com" to your yahoo id without the "@yahoo.com"
Otherwise the built-in yahoo option for iphone can be buggy:
- Delete the Yahoo account on your iphone
- Create anew account via Other option
- Fill in the usual user id and password fields
- Under IMAP tab set Host Name under Incoming Mail Server to imap.apple.mail.yahoo.com
- Under Outgoing Mail Server, in Host Name field set it to cwmx.com
If you have a very large yahoo inbox, you may have to do the following:
1. Go to your yahoo account in a regular browser on your computer. Makesure you're using the new version of Yahoo mail (the one that looks andfeels like outlook).
2. Create a new folder. I called mine "archive - inbox".
3. Select ALL emails in your inbox so that your inbox folder will becompletely empty once you move them (there's a box you can check whichwill select everything). I had over 5,000 emails in my inbox, so thiswould have taken ages using the Classic version of Yahoo mail.
4. Move all emails to your newly created archive folder. Go back intothe archive folder and select any unread/new emails and move them backto your inbox.
5. Go into Yahoo on your iphone and refresh the mail. This will clearout the old emails and download the most recent emails from your inbox.
More info here: http://discussions.apple.com/thread.jspa?messageID=7926883