A wallet is a way of storing your private and public keypairs. It is used by various clients to check your balance and create new transactions. A client usually listens on port 8333, and has 8 other ports open for outgoing TCP/IP connections. It finds peers through various means - exchanging info with other peers, using fallback nodes, seed nodes and so forth. Its main purpose is to exchange information with its peers about new blocks, transactions and the like in a peer-to-peer fashion.
A miner is an application connected to a mining pool. The mining pool runs its own client to get the latest information on blocks and transactions, as well as handling the creation of new blocks. The pools generally use port 8332 for communicating with their miners. It is a server that communicates with a lot of miners through the use of HTTP JSON RPC, and usually comes with a website of some sorts. The miners find the pool, and the pool doesn't care about peers (it has a client for that).
A miner is an application that runs on local mining rigs (computers with high-end GPUs and other dedicated devices). It communicates with a mining pool through HTTP JSON RPC calls. The miner connects to (usually) one pool of a predetermined address, but the getwork protocol facilitates the use of backup pool addresses. The miner is responsible for getting "work" from a pool, processing it, and submitting shares back to the pool. A miner does not care about its peers, just the pool it is connected to.
I hope that clears out all the problems you had. You might also be interested in checking out my master thesis on Bitcoin for more information on numerous subjects related to Bitcoin, mining pools and security.