I use Cloud Print. Very easy to set up and easy to use. (Share, in most apps, will let you "share" to the printer.)
You don't need a wireless printer, as long as you're willing to leave one computer turned on. Connect the printer to that computer, set it up as a local printer and share it. Use the computer's IP address as the printer's IP address. (You can even turn the computer off, as long as you have it turned on any time you need to print from the phone.)