Yeah - a little board you could plug into the 3.15mm Jack that could include an amplifier (with external power of course) or something - it would also allow you to control the output impedance somewhat right?
Yeah, if you fed the output through an appropriate opamp for example, you'd have a lower output impedance (although I'd wager since the audio jack is expected to drive headphones, it already has a low output impedance, maybe 0-30 ohms; every device will be different so the opamp would normalise the output impedance). You could use a simple pot to control the gain.
I'm unsure if you'd need to reduce/dynamically-adjust the input impedance to the opamp to keep the audio output behaving, I doubt it, it would draw more power from the device and as stated before, the output impedance of the audio port from device to device will be different.
One additional thought: if you really wanted the output peak to peak voltage to be selectable by the user, you'll need variable attenuation in front of the input to your amplifying circuitry and some fancy circuitry to auto-calibrate the front end. Now things are getting a bit out of hand, you'll probably need a peak detector, a digital pot (to facilitate the input attenuation), a voltage reference and either a micro or some clever analog circuitry combined with some random logic to achieve this (at least if you want auto-calibration). At this stage in the thinking process, I'd be tempted to ditch the idea or abandon using the portable device for signal generation, maybe just use it for UI and make the front-end itself the function gen ^^'
I haven't really thought much about this so take my advice with a grain or two of salt.