I'm closing this post because it has been answered. The real Issue I had was that the gain would reduce as I went into a higher frequency range because I used an op amp with too low a gain bandwidth. For what it's worth, I hooked up an LM3900N and ran the higher frequencies that the lm741 couldn't handle and the LM3900N did just fine. Thanks to all for help with this. I'll do additional research on VCOs with a volt/oct range, but that is a separate issue and from what I have read it is easier to get through a micro controller than it is to build that circuit from components.
Use a rail to rail opamp that can run from 3.3 V. Many of the Micropchip MCPxxx line, for example, can do what you want.
Run the opamp in positive gain configuration with ground as the reference. The gain needs to be about 8. All you should need is the opamp with its bypass cap, and two resistors.
As Andy pointed out, even "rail to rail" opamps might not do what you want within a few 10s of mV of either rail. Check the datasheet.
If this is a problem, you can use a small charge pump to make a small negative voltage. There are charge pump ICs for this purpose, but if you have a microcontroller with a spare pin this can be even simpler. I have used the clock output feature of a micro a few times just to run a charge pump from. If you only need a few mA, you can run the charge pump directly from the clock out or PWM logic signal. All you need is two diodes and two caps. If you need a little more current, follow the logic signal with a NPN/PNP emitter follower pair. That will reduce the negative voltage magnitude by 1.4 V or so, but even with 3.3 V supply there is plenty left to get ground well past the rail region of a "rail to rail" opamp.
With a volt or two negative supply, you can sometimes use much cheaper opamps, which makes the charge pump option cheaper overall. For example, if you can use a LM324 if only you had a negative voltage, then quite likely the more expensive opamps that go to the negative rail will outweigh the few diodes and caps to make the charge pump.
As always, look at the opamp datasheet carefully. If the micro is running from 5 V and you are using the logic signal directly to drive the charge pump, you may actually be giving the opamp too much voltage. The opamps that get close to real rail to rail performance also tend to work over a limited supply range.
If you do use a charge pump, it would be a good idea to filter the charge pump output before it is applied to the opamp negative power input. A ferrite "chip inductor" in series followed by a 20 µF cap to ground should be enough.
Best Answer
The basic circuit just needs a few extra components.
Adding C2 gives it a DC gain of 1 but keeps the AC gain set by Rf,Rg (G= 1+ Rf/Rg)
Adding R1,R2 creates the mid point DC offset at the non inverting input.
Adding R3 and C4 creates a smoothed supply (low pass filter) for this offset.
Adding C1 decouples the input.
Adding C3 decouples the output
Additional edit
R3 and C4 ensure that the voltage to the potential divider (R1,R2) is as noise free as possible. Any noise on the potential divider would appear at the (non-inverting) input and be amplified.
With regard to values:
R3 was chosen to be less than 1% of R1,R2 so that it would not drop too much voltage before the potential divider. C4 value was chosen because it is a commonly used value and gives a low break frequency .
These values are not particularly critical and others could be substituted if needed