rtamma,
An internal sort is actually done within your Cobol program by using an SD Sort file. You define what fields are to be the sort order and the input and output procedures within this SD statement. The input procedure releases chosen records to the file, and the output procedure returns then to the program for further processing.
An external sort is done outside of your Cobol program by CA-Sort or something similar. The file is then presented to your CObol in sorted sequence.
Pro and cons?
Pros: An internal sort has more control over the records that you are actually going to process, although many of the external sorts do provide the ability to drop records etc.
Cons: Many people do not like the Sort verb as it's a little bit unusual to use, and is far easier to run an external sort if all you require is a sorted file.
It's down to each particular application I guess, although that said I can't remember the last time I coded one!
HTH
Marc