You could also use one of ADI's quadrature digital upconverter chips, like the AD9957. This offers the best of both worlds - you can use it as a pure DDS (sine-wave only), possibly with modulation. You could also use it as a pure interpolating DAC, so it would take digital data from, say, an FPGA or a Cypress USB to parallel converter, and generate an arbitrary waveform. Finally, you could also use it as an upconverter, and use the digital data to modulate the carrier signal produced by the DDS, essentially a vector modulator. The 9957 is pin-compatible with a 9910, but requires different firmware. Sample rates up to 1 GSPS, DAC analog bandwidth up to 400 MHz.