for folders, files, non-packaged apps, the conventional method of getinfo, copy, paste works fine.
packaged apps usually have .icns file in
whatever.app/contents/resources/
the name of the file is different from app to app, but it should be pretty obvious.
you can change the icon by...