I have been using a FY3224S myself for some time, and it is rather good for the money.
And they aren't too expensive, here is a link to an Ebay listing:
http://www.ebay.com/itm/FY3224S-24Mhz-Dual-ch-DDS-Function-Arbitrary-Waveform-Signal-Generator-sweep-/121478483178?hash=item1c48ae8ceaThis would be my recommendation as a first signal generator for general use.
It has decent performance, and can generate decent looking square, triangle, etc waves at 2MHz, sine waves up to 24MHz, and if you really need a square wave, then you can always buffer the sine wave through a Schmitt triggered inverter. It also has arbitrary functions, but I haven't played around with that myself though, so I have no clue if it is any good. Best performance is expected under 1 MHz. Though, it doesn't like driving large loads, so it only has a few tens of milliamps worth of power.
Secondly, it has a universal counter in it too, and it can measure frequencies from a few hertz, to 100MHz, and the counter seams to not have a problem counting real short events. (I have only tested it with 10ns pulses at arbitrary spacing, generated by a digital signal generator.)
Internal build quality is really nice, and were actually surprising me when I first opened it. Though, putting in a lead weight could be considered an upgrade as it weighs almost nothing, and the case feels rather cheep.