For freeware I recommend
ISO Producer. I used it on 12 discs and though I had to create the ISO more than once sometimes they all worked eventually.
A more reliable option is
CloneCD which has a 30-day trial period. And below is part of a step-by-step guide from an Emuforums post that I saved to a .txt file. I don't remember the author, but the method works perfectly. I deleted all my old ISOs and used this to replace them.
1. Insert the PSX disc in your Burner (NOT the regular CDROM, as chances are it won't read subchannel info)
2. Fire up CloneCD, preferably 4.0.0.0 and up.
3. Click on the "Read to Image File" Button (the one with the glasses)
4. Now select your burner from the drives listed.
5. You'll now see a couple of profiles. We'll need to create a custom one though. Right click on the white area and select "New".
6. Name your new profile "PlayStation Disc" or "PSX Backup" or "PIRACY RULZ!!!111!" or whatever.
7. Input the following settings into the profile:
Data Read Settings
Read Speed Data: Max
Read Subchannel Data from Data Tracks: Checked
Regenerate Data Sectors: Checked
Audio Read Settings
Read Speed Audio: Max
Audio Extraction Quality: Medium(Fast)
Read Subchannel Data from Audio Tracks: Checked
Only Read the First Session: Unchecked
Error Handling
Fast Error Skip Settings: Off
Abort on Read Error: Off
Don't Report Read Errors: Off
Intelligent Bad Sector Scanner: Off
After setting all that, click "Next.
8. Now you name your .ccd file. If you want to have a .cue sheet file, check the appropriate box for it.
9. CloneCD will now make your ISO, or Disc image. Grab something to eat while waiting, or browse for porn, or post at Emuforums, it's up to you.