(Skip over this reply if you want "the answer". Somewhat rambling, somewhat philosophical....)
I agree that the hardware side of this is not "rocket science".
And I'll be delighted if the software is also simple. I was worried that getting an adequately precise 38,000 hz might be a challenge, especially if the Arduino is doing other things at the same time. There are system interrupts, even if the user isn't adding any.
Of course, 38kHz may be veerrryyyy sssllllooowwwwww from the Arduino's point of view. I gave up trying to judge these things intuitively years ago.
As to "premium"... yes, of course, someone is going to make money if you use a module. I think I even said as much in a similar discussion going on elsewhere, a thread that suggested that the people there might be having trouble getting a sufficiently precise modulation. I enjoy playing with recording weather by computer....
... in that field, there are lots of "expensive" (for what they are) devices.
Pricing always has at least three parts... fixed costs, variable costs, anticipated sales volume. (Plus, as Mike rightly says "fool markup")
I would have thought that the sort of module I am thinking of would have parameters which would make buying one attractive.
As I think about it, it occurs to me that the other half of IR comms... using an Arduino to READ a data stream carried on a pulsed beam makes a perfect example of the fact that there ARE times to just buy the already invented wheel. Anyone care to program an Arduino to not only read the "ons" and "offs" of such a beam, but also to ignore IR signals which are not pulsed at around 38kHz? (For those unfamilar with the concepts: There are TWO sorts of "pulsing" going on here. There is a relatively slow "on" and "off" pulsing that is the data, and a second high frequency pulsing (38kHz being the frequency used as an example in the rest of this post) which is going on with the "on" signals from the sender. Using the high frequency carrier allows the receiver to distinguish between an IR signal coming from the IR source you want it to respond to, and other sources, e.g. your desklamp.)
I went off to find the module for sending 38kHz IR. Along the way I came across....
http://www.trainelectronics.com/artcles/PulsedIR/index.htm
... which, if you skip down a bit, offers you a 555 based answer. But you still have the (minor) hassle of sourcing and connecting up the bits. But at least you've taken from the Arduino (and programmer) the burden of chopping the IR beam up into a stream of 38kHz pulses when it is "on".
(Ironically, that post goes on to suggest using a microprocessor to do nothing more than replace the 555 timer. If you ONLY want the Arduino to do that, then yes, the programming is easy enough!)
Having received no answer to my earlier question... does anyone know of a transmiting module... I couldn't let it go, went digging with Google... and found lots of discussions, no answers! So maybe I'm wrong... maybe all of the high volume applications, the ones that generated the receiver modules, just drive the IR modulation with spare processing capacity in the microprocessor which does the rest of the work. Oh well. If YOU, Gentle Reader, know of a module, I'd still be interested to know where I can get it, what I would pay!
One almost useful thing did turn up... Someplace else, someone else's equivalent of the Arduino "analogWrite()" (which produces PWM pulse trains) allows the user to specify the frequency of the pulse train.... No such luck with the Arduino... but it is no big deal. I only mention it to save you the 30 seconds it took me to check out whether using "analogWrite()" would be an option. I suspect that if you want to delve into the internals of the Atmega chip (and risk upsetting things the Arduino system software expects) you could get the Atmega to generate the 38kHz... but that's not a route I would advocate!
===
Lastly, and even more tangentially.... There's a nice "turn things on and off with your TV remote control" project written up at...
It uses a different microprocessor at it's heart, and is about how to RECEIVE the IR signal, but I thought readers of this thread might find bits useful. The author, for some reason that I don't understand... but is it an area where I am inexperienced... does some conditioning of the signal from his IR detector (with 38kHz "window") device. I've used them just connected directly to the Arduino... perhaps it is a matter of which detector, which microprocessor. "My" system, just a write up of the work of others....