I'm currently tracing a lot of buildings from Bing imagery and while the "Buildings Tool"  is a big help, it doesn't cover all possible cases. Especially in naturally-grown town centres the shapes aren't always rectangular and many connected houses result in complex forms.
It's quite annoying to stop and tag each house with "building=yes", so I take advantage of JOSM's built in search feature. To select all ways which need the building tag I search for:
id:0 untagged type:way -role:inner
* id:0 limits the search to objects that have been created in the current session and not been uploaded yet. Essentially, this prevents the search from selecting other people's objects.
* untagged eliminates all objects, which I might have tagged while tracing (e.g. a plaza).
* type:way includes ways and removes all nodes and relations from the results.
* role:inner selects all objects that are part of a relation and have the role 'inner'. The minus in front of it negates the filter, thus "-role:inner" excludes all "inner" ways, i.e. the holes in buildings.
By default an object must fulfill all search criteria to be matched, thus the query above in normal English would be:
Select all new ways that aren't tagged and don't have the role "inner".
Luckily JOSM remembers the previous searches, so you don't have to copy&paste the search string each time :)