There is the oft quoted adage in chemistry, which goes something like:
like dissolves like
The reason for this can be understood on the basis of polar/ionic compounds have some degree of charge separation. In polar solvents, the partial charges on on the solvent molecules can interact with the partial charges on the solute molecules. These interactions lower the overall energy of the system, and thus dissolution takes place. This part you get, so it's fine.
First let's address why non-polar solutes don't dissolve in polar solvents. Consider the simple case, of a long chain hydrocarbon (solute) in water (solvent, present in larger excess). Typically, water molecules will form (and break) hydrogen bonds with each other. At any given time, a water molecule would like to maximise the number of hydrogen bonds it can form, simply because it is energetically favourable.
Remember that the water molecule, cannot form hydrogen bonds with the hydrophobic molecule; it can only do so with other water molecules.
So when a hydrophobic is dropped in an aqueous medium, hydrogen bonds between water molecules will be broken to make room for the hydrophobe; however, water molecules do not react with hydrophobe. This is bad energetically. So, water molecules would now try to adopt an arrangement that maximises the hydrogen bonding network; to do so they will arrange themselves in a "cage" like structure surrounding the hydrocarbon droplet. While, this allows the water to make more hydrogen bonds, it leads to overral "ordering" and thus decreases entropy. Again, bad. Thus to minimise this hydrocarbon droplets will clump together, and will be exluded by the solvent--this is why oil and water don't mix. (Read more here)
So what happens when non-polar compounds are tossed into non-polar solvents. True, there aren't any dipole-dipole, ion-dipole, etcetera kinds of interaction that you have with polar molecules, but you still have something called London dispersion, and non-polar entities often interact via these weak interactions.