What exactly is a theme? I am an experienced programmer in various languages, and also have experience with web development. I am new to Drupal, and as with any new platform there is sometimes a language barrier. I've read drupals small documentation on theming on their site, but I just want to make sure I'm wrapping my head around this correctly.

The way I understand it, a theme in Drupal is a site's skeleton, the basic HTML and CSS. If that's true then I at least have that part right. Where I'm losing it is where does the theme stop, and web design/content development start? For example, what exactly should I expect when I download a Drupal theme/template, should I be editing the theme directly to add my images and text, or is there specially created modules for that I'm just not seeing? Is it common practice to sub theme or just edit the theme directly?
Just as structured programming revolutionized system building, modern web sites have strived for a conceptual structure. Today we try as far as possible to separate information, process and presentation. Think of the three as a venn diagram of overlapping circles: content, function, and theme. 

Images and text are information, and the core and modules necessary to work with them are function.

The theme is the look and feel, the overlap is your information architecture. In Drupal, you can retain the same function and information, and completely change the presentation by changing the theme.

Think of it as structured programming taken to the next level.