The AD9850 based Signal Generator module is inexpensive (around $12-$15), crystal controlled, and comes out of the box with much of what is needed for a stable, versatile VFO that can be used in a variety of radios.

I'm bread-boarding this project now, and initially using an Arduino Nano 3 as the processing engine.  Depending on how much SRAM and EEPROM storage is required to implement the feature set I want, I may have to switch to a board with more SRAM and EEPROM.  (The Nano 3 only has 2KB of SRAM, and 1KB of EEPROM.)

A discrete microcontroller circuit may be the way to go, but I'm trying to stay within the Atmel family of microcontrollers, as these will be more comfortable for people accustomed to using Arduinos, and the Arduino IDE.

An encoder shaft will be the main tuning knob, and it will provide the pulses to the Arduino, which will do the math needed to change the output of the VFO.

I picked up some very nice encoder controls on eBay for $6.50 each.  They are smooth operating, and have a nice feel to them.  They have a built-in push button that is activated by pressing in on the shaft/knob, which is ideal for either a band-switch function, or to access a utility menu, etc.