Sorry to add to an old post but hopefully it helps.
I had the same problem today after REORGANIZING a ton of heavily fragmented indexes (rebuild not an option).
To fix I had to go into Enterprise Mgr..... find the agent under replication->log reader agent
Right click, choose agent profiles.
This allowed me to create a new profile with a larger timeout value and i had to also set ReadBatchSize to 1
After doing this replication is now running again, it just took longer than normal to catch back up but this has fixed the problem for me. I will change the ReadBatchSize parameter back to 500 after a few hours but thought I'd share my experience with this issue.