Based on OMG Ponies' query with corrections:
SELECT
r.*
FROM
registries AS r
JOIN (
SELECT
MAX(t.reg_date) AS max_date
FROM
registries AS t) AS t
ON DATE_FORMAT(t.max_date, '%Y-%m') = DATE_FORMAT(r.reg_date, '%Y-%m')
Though the performance of the query wouldn't be excellent, since it would operate the JOIN on two calculated values.
I believe it can still perform decently unless you start hitting millions of records.
On the other hand, you could probably run it faster by querying first for the MAX(reg_date)
SELECT
CONCAT(DATE_FORMAT(MAX(r.reg_date), "%Y-%m"), '-01') AS first_day
FROM
registries AS r
And then injecting the result in a query:
SELECT
r.*
FROM
registries AS r
WHERE
r.reg_date BETWEEN '<first_day>' AND LAST_DAY('<first_day>')
With first_day as a place holder for the previous' query result.
Provided you indexed reg_date, this should run pretty fast.
Note: LAST_DAY is a MySQL only function.