Realistic aquarium water?
Let's start with the water, then we'll talk about mixing in the particles.

Water

It's typical to use the glass shader for water.  This gives you the transparency, reflection, and refraction needed, but has some issues.  First, it renders too dark and too noisy, and second, setting the color ends up looking too uniform (I guess that's how I'd describe it...).

Fast Glass

To fix the first problem, I suggest using a "fast glass" shader.  It's the regular glass shader, but we make it fully transparent to any rays that we don't care about by mixing it with a transparent shader using only a few light paths as our factor.  We only want it to look like the glass shader to shadow, diffuse, and glossy rays.  This will render much faster since the water will now be invisible to any other rays (basically, invisible to most rays).

Admittedly, I don't fully understand this technique, but it has something to do with refraction being time consuming to calculate.

Colored Glass/Water

Now for color.  If you look at water, it's color gets darker as you look at deeper water.  This is because the water is absorbing light as it passes through.  This is what the volume absorption shader was made for.  Plug one into the volume input of your material output and pick a color and a density to see the light get absorbed and colored more in deeper areas than in thinner ones.

There are a few "gotchas" with the cycles volumetrics at the moment.  First, they don't work on AMD GPUs.  I think (but am not certain) that they finally work on Nvidia GPUs, and they should work on all CPUs now.  Also, they're computationally expensive, so they increase render time noticeably.  If you need to speed up renders and can't bear to cut volumetrics, google for tutorials on how to fake them.  There are a couple of good workarounds out there.

Particulate

As for the particles, you can mix your water with your particles' material using a noise texture as the factor.  Running the texture through a greater/less than node allows you to select out just some of the noise.  You'll have more control, however, if you run it through a color ramp node instead.  Basically, sliding the black level up will choose your particle density just like a greater/less than node's factor and sliding the white level closer to the black level will control how fuzzy the particles are which is something you can't do with a greater/less than node.

The only issue with this technique is that I'm not sure if the particles are distributed throughout the water, or if they're just stuck on the surface.

Demo!

Here's a screenshot of all three techniques in action!


UPDATE: Particle System

The factor mixing from above can never cause particles to show up inside a mesh in a render that uses surface rendering.  Blender and Cycles would expect you to do that by adding a particle system to the mesh.  See below for a quick one.