It is usually best to use an app from the printer manufacturer. But the printer has to be on the wireless network. It does not have to be wireless itself. I print to my Brother printer which is networked via its Ethernet cable to my wireless router and it works fine using the Brother app. I can even scan using it.
The alternative I use is Printbot which worked OK with my daughter's Canon printer.
HTC Sensation (O2 UK)