Hi,
It might be overkill and/or not fast enough for your needs, but I posted an approach a little while ago for an arbitrary amplitude + arbitrary waveform generator implemented purely in software: http://arduino.cc/forum/index.php/topic,63604.0.html .
For a one-off project, it's probably easier to follow retrolefty's suggestion of generating a squarewave (tone()) and filtering it. VCO (voltage controlled oscillator) circuits are fun to play with too if you have the time; this may give you a more consistent signal over the entire audio frequency range (won't have to worry about rolloff from the squarewave-filter).