Sure. I threw some of that in there in case you were not familiar with them so you could ask ;-)
In the left hand side of the function definition
pointsInR[points : {{_, _} ..}, r_ /; r > 0]
the
points : {{_, _} ..}
is indicating that the first argument, points, should have the pattern (http://reference.wolfram.com/language/tutorial/PatternsOverview.html) where it is a list of lists, each of which is a pair of values -- i.e., a list of cartesian pairs to comprise the coordinates of the points. It just restricts the function to only working when such a pattern is supplied. If you don't supply that pattern then the function will return unevaluated.
In a similar way, the second argument pattern
r_ /; r > 0
is just demanding that the radius argument be greater than zero--a sensible argument constraint given that the radius should be positive for the circle.
I could have written the function simply like this:
pointsInR[points_, r_] := Select[points, Sqrt[#.#] < r &]
but then, if you give it arguments of the wrong form, all sorts of havoc might be the result.
The
Sqrt[#.#] < r &
is an example of a pure function:
http://reference.wolfram.com/language/tutorial/PureFunctions.html
It is a way of defining a function to be used without having to name it. David Keith similarly uses a pure function in his discussion.
The # and the & are a shorthand for implementing a pure function. Another way of writing this, using the full Function form would be
Function[z,Sqrt[z.z] < r ]
I understand that this may give you a bunch of stuff to chew on, but it will be well worth learning these bits.
I hope this helps.