An internal style sheet is where you put the code for the style of your page inside the <head> of your page. There is no separate style sheet. This is good if you have a specific style you want to use for one page, not sitewide.
Say you want to define the font for a small amount of text but you don't want to apply this style for the entire site. You would use an internal stylesheet by placing some code directly on the page...
Code:
<style type="text/css">
.adHeadline {font: bold 8pt Arial; text-decoration: underline; color: #CC0000;}
.adText {font: normal 8pt Arial; text-decoration: none; color: #000000;}
</style>
In this example, I am defining two styles: adHeadline and adText that have Arial font, size 8 and their respective text decorations
An external style sheet is where you define the CSS attributes on a totally different file and you link to that file on the page that calls up the attributes. This is what I use for all my sites. So in my <head> I have a line that reads something like...
Code:
<link href="http://www.mydomain.com/style.css" rel="stylesheet" type="text/css">
Where
style.css is the external style sheet. This tells the page where to look for the style sheet. So if I want to change my entire site's font, I would open up style.css and make the appropriate changes.