I am experimenting with the Arduino Ethernet for a couple of weeks now and really like the easy c programming style. However, I want to get one level deeper: There are a couple of ideas I have, where I don't need the ethernet port of the Arduino. I might use a serial interface in some projects, but most of the projects is pure stand alone stuff. So I am wondering: Is it possible to use the same easy c programming from the Arduino and flash the program to a clean ATmega328 (or any other cheap ATmega)? I've read some posts and I always read words like bootloader and programmer. I am working as a high level programmer, so those words aren't totally new to me, but hardware is kind of magic to me, so I don't really understand if this basically means 'yes, you can' or 'no, you can't'.
In my simple mind, I think I simply can get an atmega, power it with +5V and GND, flash my program on it, and all the other pins are I/O pins I can use!? Is this how it works? And can I use the USB to Serial connection stuff that came with my Arduino Ethernet to program the ATmega or do I need another 'Programmer' for that?