You can achieve this with several different ways:
A) Don't have the wrong particles (Chose one or more)
- Make the houses smaller
- Make less houses
- On rotation, check "normal". If you made your normals right, the houses should align along the faces decreasing the probability of going of an edge
- Adjust the seed until all houses fit in the areas visible in the final render
B) Cut them in particle edit
C) Vertex groups
- Add a new vertex group
- Assign all faces where a house is possibly allowed to stand (leaving a maring of the maximum size of a house in every direction) to that group
- In the particle settings -> Vertex groups, select this group under "density"
D) Texture (Cycles only)
- Create a new, empty image.
- Go to orthographic top-down view of your city.
- Select your mesh.
- Go into texture paint mode.
- Paint the areas where houses are allowed.
- Go to particle settings -> Texture
- Create a new texture and go to texture properties
- Link that texture to the image you painted
- Under influence uncheck all but "density"
E) Remove them manually
- Apply your particle system.
- Delete wrong houses
- Select the remaining ones and join them (optional)
That's about all the possible ways I could think of. Chose the one you like the most! If I missed a good way, please add it. If something is unclear or you need screenshots, I can add them.